2013-04-22 2 views
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 

왜 그런지에 대한 힌트가 있습니까?

+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