0

移行によって新しいレコードを挿入するのは良い習慣ですか?最近、ローカル移行を最初から再実行すると奇妙なエラーが発生しました。次のようなエラーがスローされます (例: 製品モデル、コスト列):

undefined method 'cost=' for #<Product:0x10f60f4b8>

移行:

class AddNewProducts < ActiveRecord::Migration
  def self.up
    product1 = Product.new
    product1.cost = 10
    ....
    product1.save!
  end
end

以前の移行で列コストが追加されました。

Class AddCosttoProducts < ActiveRecord::Migration

    def self.up
      add_column :product, :cost, :integer, :default => 0, :null => false   
    end

    def self.down
      remove_column product, :cost
    end
end

なぜそれが起こるのかについてのヒントはありますか?

4

1 に答える 1

1

cost以前の移行 (フィールドを追加するため) を既に実行している場合は、レコードを追加する前に列情報をリセットしてみてください。

class AddNewProducts < ActiveRecord::Migration
  def self.up
    Product.reset_column_information
    product1 = Product.new
    product1.cost = 10
    ....
    product1.save!
  end
end
于 2013-04-22T05:36:36.627 に答える