모델 "하나"ActiveRecord 모델 이중 저장을 피하는 방법은 무엇입니까?
class One < ActiveRecord::Base
before_save :do_stuff
private
def do_stuff
two = Two.find(8)
two.field2 = 'Value'
two.save!
end
end
모델 "2"실행
class Two < ActiveRecord::Base
before_save :do_stuff
private
def do_stuff
one = One.find(7)
one.field2 = 'SomeValue'
one.save!
end
end
:
two = Two.find(1)
two.somefield = 'NewVal'
two.save!
무한 루프가 시작됩니다. before_save 콜백에서 서로를 변경해야하는 두 가지 모델을 구현하려면 대부분의 루비 온 레일 (ruby-on-rails) 방법은 무엇입니까?
여기 정확히 달성하려는 것은 무엇입니까? –
확실히 디자인에 문제가 있습니다. 현재 질문을 해결할지라도 다음 문제로 이어질 것입니다. – megas
+1 디자인에 부족한 것처럼 보일지라도이 종류의 _cycle에서 한 번 이상 내 자신을 발견했습니다. 콜백 참조 hell_. [adhoc 콜백을 피하십시오] 가능성을 가지는데 도움이 될 수 있습니다 (http://stackoverflow.com/questions/632742/how-can-i-avoid-running-activerecord-callbacks) – fguillen