has_many에서 연관을 통해 모델의 유효성을 검사하는 데 문제가 있습니다. 아래는 관련 모델은 다음과 같습니다레일 has_many : 유효성 검사를 통해
방송 모델
class Broadcast < ActiveRecord::Base
attr_accessible :content,
:expires,
:user_ids,
:user_id
has_many :users, through: :broadcast_receipts
has_many :broadcast_receipts, dependent: :destroy
validates :user_id, presence: true
validates :content, presence: true
end
방송 영수증 모델
class BroadcastReceipt < ActiveRecord::Base
belongs_to :broadcast
belongs_to :user
attr_accessible :user_id, :cleared, :broadcast_id
validates :user_id , presence: true
validates :broadcast_id , presence: true
end
방송 영수증을 통해 방송 영수증을 have_many 사용자와의 연관도 있습니다.
문제는 다음 줄에 나타납니다 : 나는 방송을 만들려고 할 때마다
validates :broadcast_id , presence: true
, 나는 주어진 오류 메시지와 함께 롤백을 얻는다. 그러나 위의 행을 제거하면 모든 것이 예상대로 작동합니다.
브로드 캐스트 수신이 생성되기 전에 브로드 캐스트가 저장되지 않는 문제입니다.
영수증 모델에 broadcast_id가 설정되어 있는지 확인할 수있는 방법이 있습니까?
'validate : broadcast_id_exists'와 같은 사용자 정의 유효성 검사기를 만들고 DB에 브로드 캐스트가 있는지 확인하십시오. – Kaeros