2
로 만들어 아이들이 작동하지 않는 속성 :중첩 나는 두 가지 모델이 새로운 부모
class Shift < ActiveRecord::Base
attr_accessible :ranges_attributes
has_many :ranges
accepts_nested_attributes_for :ranges, allow_destroy: true
end
class Range < ActiveRecord::Base
belongs_to :shift
validates :shift, presence: true
end
내 컨트롤러에, 나는군요 범위가 변화를 만들려면,
:
Shift.create! params[:shift]
#ActiveRecord::RecordInvalid Exception: Validation failed: Shift ranges shift can't be blank
Range
모델에서 validates :shift, presence: true
을 제거하면이 기능이 아름답게 작동합니다. 나는 그의 아이들과 새로운 교대를 만들 수있다. ActiveRecord
그게 나를 위해.
질문 : 왜이 유효성 검사를 제거해야합니까?
읽고 추천 내가 확실하지 않다 파괴 따라 어린이 모델 .. –
,하지만 난 생각 '새로운 Shift'와'Range' 객체는 하나의 트랜잭션 동안 생성됩니다. 새로운'Range'를 만들려고 할 때'Shift'가 실제로 존재하지 않을 수도 있습니다. 그러면 유효성 검사 오류가 발생할 수 있습니다. – Bjoernsen