2013-04-22 191 views
0

通過遷移插入新記錄是否是一種很好的做法?最近,從頭開始重新運行本地遷移時出現了一個奇怪的錯誤。它拋出一個這樣的錯誤(例如:產品型號,成本列):Rails遷移問題

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 

任何暗示爲什麼會發生?

+0

什麼版本的導軌? – dpassage 2013-04-22 05:34:38

回答

1

如果您已經運行了先前的遷移(要添加cost字段),請嘗試在添加記錄之前重置列信息。

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

非常好,謝謝 – kasperite 2013-04-22 21:53:00