레일에서 두 모델의 유효성을 검사하려고합니다.레일의 모델 유효성 검사, 암시 적 연결
해고는 볼링을 "당신이되는 해고 유형이있는 경우"BowlingRecord ", 당신은 있어야합니다"라는 조건이 있습니다. "
class Dismissal < ActiveRecord::Base
include DismissalHelper
belongs_to :bowling_record
validate :dismissal_bowling_record_combo_is_appropriate
def dismissal_bowling_record_combo_is_appropriate
return if !dismissal_type.present?
if bowling_record.present?
return if DismissalHelper::BOWLING_DISMISSAL_TYPES.include?(dismissal_type)
errors.add(:dismissal_type, "#{dismissal_type} can't have a bowler!")
else
return if !DismissalHelper::BOWLING_DISMISSAL_TYPES.include?(dismissal_type)
errors.add(:dismissal_type, "#{dismissal_type} must have a bowler!")
end
end
end
BowlingRecord 말한다 상태가"당신은 어떤이있는 경우를 .
: 해고는, 그 때 (그 중 하나입니다 볼링) "특정 해고 유형이어야합니다 내가 문제가이 구축하는 데 문제가class BowlingRecord < ActiveRecord::Base
include DismissalHelper
has_many :dismissals
validate :dismissals_go_against_bowler
def dismissals_go_against_bowler
dismissals.each do |dismissal|
if !DismissalHelper::BOWLING_DISMISSAL_TYPES.include?(dismissal.dismissal_type)
errors.add(:dismissal, "can't be #{dismissal.dismissal_type} if registered against a bowler")
end
end
end
end
, 현실적으로 내가 좋아하는 뭔가를하고 싶어
하지만 우리가 해고를 할 때 "볼링을해야하는 경우 볼링 기록이 필요합니다"라고 말하기 때문에 이것은 폭발적입니다. 그러나 모든 정보는 여기에 있습니다. 나는 해고가 게으르도록 만들고, 볼링 기록에 속한 컨텍스트를 만들어야합니다.
물론 나는 볼링 기록을 앞면으로 만든 다음 해고를 하나씩 추가한다고 말합니다. 그러나 내가이 방법으로 그것을 할 수있는 방법이 있다면 ... 궁금
감사
된 더러운 코드 것 같다 그래서 당신은 관련 해고.build
수
안녕하세요, 네, 바로 이것이 내가 찾고있는 것입니다. 어쨌든 곧 트랜잭션 성격에 주위에, 필요 감사합니다 :) – Imran