我使用下面的代码加载了一些种子数据,它运行正常。然后,我需要添加两个列,我使用以下步骤,但它没有将两个新列种子数据附加到表中,我做错了什么?
步骤:
Seed.rb
require 'csv'
Model.delete_all
CSV.foreach("#{Rails.root}/lib/data/model.csv") do |row|
Model.create!(:model_number => row[0], :areq => row[1], :length => row[2], :width => row[3], :depth => row[4], :material => row[5], :frame => row[6], :edge => row[7], :tubes => row[8], :tube_length => row[9])
end
Schema.rb
create_table "models", :force => true do |t|
t.string "model_number"
t.float "areq"
t.float "length"
t.float "width"
t.float "depth"
t.string "material"
t.string "frame"
t.float "edge"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.float "tubes"
t.float "tube_length"
end
答案 0 :(得分:1)
不能说这可能100%
在种子文件上方尝试Model.reset_column_information
这应刷新表格中的列信息。
require 'csv'
Model.reset_column_information
Model.delete_all
#......
只是猜测是否正在加载正确的model.csv并且第8列和第9列意味着在所有10列中都有。