2011-01-21 3 views
0

클래스 A가 after_create에서 B를 초기화하는 다음 두 클래스가 있습니다. 불행하게도이 작동하지 않습니다, 그리고 B의 생성으로 인해 presence_of 검증의 위반으로 실패하지 B.이after_create, belongs_to 및 validate_presence_of

답변

1

난 그냥 이걸 발견하는 A를 만들 때

class A < ActiveRecord::Base 
    has_many :bs 

    after_create :after_create_hook 

    def after_create_hook 
    B.create(:a => self) 
    end 
end 

class B < ActiveRecord::Base 
    belongs_to :a 
    validates_presence_of :a 
end 

는 A가 만들어 지지만됩니다 : http://blog.teksol.info/2006/03/08/don-t-validate-belongs_to-or-else

여기서 실수는 a의 인스턴스에 대해 유효성을 검사하는 것입니다. 이것은 외래 키일 뿐이므로 확인을 통해 확인해야합니다.

이제 모든 것이 작동합니다.

관련 문제