2012-12-19 47 views
8

我有一个问题和答案的应用程序。每当有人添加问题答案时,我想更新问题中的updated_at时间戳。何时触摸Rails中的belongs_to触发?

因此,我在Answer模型中使用了touch。

belongs_to :question, :touch => true 

但是,似乎在没有添加答案时更新时间戳。我想弄清楚如何/为什么。自从添加这种触摸方法以来,这一直发生。

因此,我想确认何时触摸触摸?只有当一个答案对象被创建,编辑或销毁?还有其他事件吗?即不应仅仅通过在特定情况下查看答案对象来触发它?

我找不到任何可靠的文档来描述如何在belongs_to关系的上下文中精确触摸。

这有点令人费解的原因是,该应用程序相对简单,并没有给用户提供任何编辑或销毁答案的功能。

回答

11

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

:触摸 如果为true,关联的对象会感动(中的updated_at /上现在设置属性)时,这个记录可以保存或销毁。如果您指定了一个符号,那么除了updated_at/on属性之外,该属性将使用当前时间进行更新。

belongs_to :company, :touch => true

belongs_to :company, :touch => :employees_last_updated_at