2012-12-19 9 views
8

Mam aplikację pytań i odpowiedzi. Za każdym razem, gdy ktoś doda odpowiedź na pytanie, chcę zaktualizować datownik updated_at na pytanie.Kiedy nastąpi dotknięcie dla funkcji belongs_to w Railsach?

Dlatego używam dotyku w modelu odpowiedzi.

belongs_to :question, :touch => true 

Wydaje się jednak, że znacznik czasu aktualizuje się, gdy nie ma odpowiedzi dodawane. Próbuję dowiedzieć się, jak/dlaczego. Dzieje się tak tylko od czasu dodania tej metody dotyku.

Więc chciałem potwierdzić, kiedy dotyk jest wystrzelony? Czy jest to tylko wtedy, gdy obiekt odpowiedzi jest tworzony, edytowany lub niszczony? Czy są jakieś inne wydarzenia? tj. nie powinno się go uruchamiać po prostu patrząc na obiekt odpowiedzi w określonych okolicznościach?

Nie mogłem znaleźć żadnej solidnej dokumentacji opisującej, jak dotyk działa dokładnie w kontekście relacji belongs_to.

Powodem tego jest nieco zagadkowe jest to, że aplikacja jest stosunkowo prosta i nie daje użytkownikowi żadnej funkcji edycji lub niszczenia odpowiedzi po przesłaniu.

Odpowiedz

11

Od: http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html

: dotyku Jeśli to prawda, powiązany obiekt będzie dotykał (the updated_at/atrybutów przedstawionych do tej pory), gdy ten rekord jest albo zapisane lub zniszczonych. Jeśli określisz symbol, ten atrybut zostanie zaktualizowany o bieżący czas oprócz atrybutu updated_at/on.

belongs_to :company, :touch => true

belongs_to :company, :touch => :employees_last_updated_at

Powiązane problemy