2013-04-22 6 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

ответ

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

Смежные вопросы