1
나는 많은 서브 평가 (자기 refential)모델 콜백은 자기 참조 협회
class Evaluation < ApplicationRecord
has_many :sub_evaluations, class_name: "Evaluation", foreign_key: "parent_id", dependent: :destroy
before_save :calculate_score
def calculate_score
# do something
end
end
내가 작성 및 중첩 된 속성과 하위 평가와 평가를 업데이트하고있다 모델 Evaluation
을 데에서 작동하지 않습니다.
calculate_score
하위 평가 생성시에는 메소드가 트리거되지만 업데이트 중에는 트리거되지 않습니다. 나는 before_update
과 after_validation
을 시도했다. 그러나 아무것도 작동하지 않는 것 같습니다.
평가 양식은
= form_for @evaluation do |f|
...
= f.fields_for :sub_evaluations do |sub_evaluation|
...
무엇이 문제가 될 것 같다?
당신이 어떻게 하위 평가를 업데이트 보여줄 수 레일 API에 Active Model Dirty를 참조하십시오
여기업데이트 된 모델 코드인가? –
이것을 재현 할 수 없습니다. 'before_save'는 내용이 업데이트 된 모든 자식에 대해 호출됩니다. 'sub_evaluations_attributes'에'id'를 허용했는지 확인해야합니다. –
sub_evaluations_attributes에 ID를 허용했습니다. 레일즈 5에서 확인하고있는 것 같습니다. – webster