관련 모델의 특성에 따라 필드의 유효성을 검사하려고합니다. 코드를보고하는 것은 기본적으로 내가에만 필드가 있는지 확인하려면 내가 새 사용자를 작성하는 양식을 제출할 때reverse validates_associated
class User < ActiveRecord::Base
has_and_belongs_to_many :user_groups
has_one :profile, :dependent => :destroy
accepts_nested_attributes_for :profile
validates_associated \
:profile,
:allow_destroy => true
end
class Profile < ActiveRecord::Base
belongs_to :user
validates_presence_of \
:business_name,
:if => self.user.user_groups.first.name == 'Client'
end
, 난
undefined method `user_groups' for nil:NilClass
를 얻을 수 (나는 희망을) 더 이해가됩니다 새 클라이언트를 만드는 경우 business_name.
는 또한 동일한 결과:if => Proc.new { |p| p.user.user_groups.first.name == 'Clients' }
을 사용하여 시도 하였다.
어쩌면 내가 완전히 잘못된 나무를 짖고 있지만, 이것을 달성하기위한 제안?
음 ... validates_associated가 매개 변수를 허용 할 때까지 가능하지 않을 수 있습니다. – brewster
여기에 논리가 뒤얽혀 있습니다. 프로파일의 독립 검증 로직을 분리 할 수있는 방법을 보여주기 위해 원래의 대답을 업데이트했습니다. is_business 플래그를 전달하여 프로파일 작성시 특수 비즈니스 validatoin을 트리거해야합니다. – Winfield