、市モデルデータベースにCSVレコードをアップロードしようとしてきエラーUnknownAttributeError CSV
ActiveRecord::UnknownAttributeError in PagesController#import
unknown attribute 'country ' for City. (City.create! row.to_hash)
CSV:
name country general_info1 general_info2 (etc)
Toronto Canada This is a test (nil)
アップロードビュー
<%= form_tag upload_path, multipart: true do %>
<%= file_field_tag :file %>
<%= submit_tag "import" %>
<% end %>
ルート:
post '/upload' => 'pages#import'
をPagesController
def import
City.import(params[:file])
end
市モデル
def self.import(file)
logger.info "__________________"
logger.info file.inspect
logger.info file.path
logger.info "__________________"
CSV.foreach(file.path, headers: true) do |row|
City.create! row.to_hash
#puts '&&&&&&&&&&&&&&&&&&&&&&&' + row[1]
logger.info row.inspect
end
スキーマ事前に
ActiveRecord::Schema.define(version: 20160513090837) do
create_table "cities", force: :cascade do |t|
t.string "name"
t.string "country"
t.string "general_info1"
t.string "general_info2"
t.integer "happiness_rating"
t.integer "family_safety_rating"
t.string "family_safety_info"
t.integer "bike_hobby_rating"
t.string "bike_hobby_info"
t.integer "accountant_rating"
t.integer "accountant_shortage_rating"
t.string "accountant_shortage"
t.integer "accountant_avg_salary"
t.integer "graphic_designer_rating"
t.string "graphic_designer_shortage"
t.integer "graphic_designer_avg_salary"
t.integer "journalist_rating"
t.string "journalist_shortage"
t.integer "journalist_avg_salary"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
end
多くのおかげ
答え:
City
そのモデルの
create!
方法は
cities
テーブルが存在しないで存在することが期待されている場合、最初の
のためにこれを参照してください
header_converters: :symbol
を使用して...誰かが説明してくださいできますか?ありがとうございました – daveasdf