0

以下のコードを使用してシードデータをロードしましたが、正常に機能しました。次に、さらに2つの列を追加する必要があり、次の手順を使用して追加しましたが、2つの新しい列のシードデータがテーブルに添付されていません。何が問題になっていますか?

手順:

  1. 移行を使用して2つの列を追加します
  2. モデルでattr_accessibleにします
  3. 古いCSVファイルを新しいCSVファイルに置き換えます
  4. seed.rbファイルを変更して、新しいデータをプラグインします
  5. rake db:seedを実行します

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
4

1 に答える 1

2

これは100%機能する可能性があるとカントは言います

Model.reset_column_informationシードファイルの上を1回試してください

これにより、テーブルの列情報が更新されます。

require 'csv'

Model.reset_column_information

Model.delete_all
#......

適切なmodel.csvが読み込まれ、列8と9があるかどうかを推測して、10列すべてにあることを意味します。

于 2012-09-02T22:07:14.063 に答える