mongoidを使用してデータベースを作成しようとしていますが、作成方法を見つけることができません。csvからデータベースを作成した後の不良チャート
extract_dataクラス:
class ExtractData
include Mongoid::Document
include Mongoid::Timestamps
def self.create_all_databases
@cbsa2msa = DbForCsv.import!('./share/private/csv/cbsa_to_msa.csv')
@zip2cbsa = DbForCsv.import!('./share/private/csv/zip_to_cbsa.csv')
end
def self.show_all_database
ap @cbsa2msa.all.to_a
ap @zip2cbsa.all.to_a
end
end
DbForCSVは、以下のように動作しますクラス:
class DbForCsv
include Mongoid::Document
include Mongoid::Timestamps
include Mongoid::Attributes::Dynamic
def self.import!(file_path)
columns = []
instances = []
CSV.foreach(file_path, encoding: 'iso-8859-1:UTF-8') do |row|
if columns.empty?
# We dont want attributes with whitespaces
columns = row.collect { |c| c.downcase.gsub(' ', '_') }
next
end
instances << create!(build_attributes(row, columns))
end
instances
end
private
def self.build_attributes(row, columns)
attrs = {}
columns.each_with_index do |column, index|
attrs[column] = row[index]
end
ap attrs
attrs
end
end
私はすべてのフィールドを認識していないですし、それがかもしれない私は、CSVファイルに基づいて2つのデータベースを作成しようとしています時間の変化。そのため私はデータベースとジェネリックのmehtodを作成しています。
「作成!」を修正した後に別の問題があります。問題。
は私が扱われていることを確認だけUTF8の文字を作るためのエンコードを使用していますが、私はまだ参照してください。
{
"zip" => "71964",
"cbsa" => "31680",
"res_ratio" => "0.086511098",
"bus_ratio" => "0.012048193",
"oth_ratio" => "0.000000000",
"tot_ratio" => "0.082435345"
}
コードで「APのattrsに」をやって。必ず「私»¿ジップ」ことを確認する方法 - > 『のzip』
おかげ