0
私はRailsを初めて使用しています。単純なdbインポートを実行していますが、エラーは解決できません。Rails:CSVからActiveRecordにインポートすると、モデルに「NoMethodError:undefined method」が返されます
私はそうCSVのようにデータを持っている:
"Symbol","Name","LastSale","MarketCap","IPOyear","Sector","industry","Summary Quote",
"DDD","3D Systems Corporation","12.95","$1.45B","n/a","Technology","Computer Software: Prepackaged Software","http://www.nasdaq.com/symbol/ddd",
私は、次のコマンドを使用して、エントリのためのモデル作成:
bin/rails generate model Companies Symbol:string Name:string LastSale:string MarketCap:string IPOyear:string Sector:string Industry:string SummaryQuote:string
を...私はデシベルを実行します。その後、移行、およびこのrakeタスクをモデルにデータをインポートしよう:
task :populate => :environment do
#http://stackoverflow.com/questions/4410794/ruby-on-rails-import-data-from-a-csv-file
CSV.foreach("companylist.csv", :headers => true) do |row|
Company.create!(row.to_hash)
end
end
これはエラーになります:
ただし、「企業」モデルは業界の特典で作成されました。どのように進むべきかはわかりません。
ありがとうございました!
というのは、列名に大文字を使用したためです。つまり、「産業」ではなく「産業」ですか。 – Kris
Rubyでは大文字と小文字が区別されます。私はCSVの 'row.to_hash'が列名のダウンケージを行うかどうかは分かりませんが、そうは思われます。ハッシュがあなたのモデルに到達すると、それはそこにない 'industry'属性に割り当てようとします。 「業種」がありますが、それは一致しません。 –
アトリビュートと一致するようにカラム名を変更すると、その問題は解決されますが、新しいエラー「Company」のActiveRecord :: UnknownAttributeError:unknownアトリビュートが作成されます。「 – manglano