0

我使用下面的代码加载了一些种子数据,它运行良好。然后,我需要再添加两列,我使用以下步骤完成了此操作,但它没有将两个新列种子数据附加到表中,我做错了什么?

脚步:

  1. 使用迁移添加两列
  2. 使它们在模型中可访问
  3. 用新的 CSV 文件替换旧的 CSV 文件
  4. 更改 seed.rb 文件以插入新数据
  5. 运行 rake db: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

架构.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
4

1 回答 1

2

不能说这可能 100% 有效

在种子Model.reset_column_information文件上面试一次

这应该刷新表中的列信息。

require 'csv'

Model.reset_column_information

Model.delete_all
#......

只是猜测检查是否加载了正确的 model.csv 并且第 8 列和第 9 列意味着在所有 10 列中都有。

于 2012-09-02T22:07:14.063 回答