在我的应用程序中,对话包含许多消息.创建/保存对话中的新消息时,如何更新该对话的updated_at属性?

我知道:touch => true,它可以做到这一点,但它也会在消息被销毁时更新对话,这不是我想要的.

谢谢

模型

class Conversation < ActiveRecord::Base
  has_many :messages 
end

class Message < ActiveRecord::Base
  belongs_to :conversation
end

推荐答案

在消息类中使用回调

after_save do
  conversation.update_attribute(:updated_at, Time.now)
end

Ruby-on-rails相关问答推荐

如何在rails 7中禁用Simple_Form验证

Web控制台不会出现在例外页面Rails 7.1.1上

如何验证 Rails 中的多态字段关联?

如何使用 activerecord activerecord-session_store 在 Rails 应用程序中使用 cookie 值在数据库中查找会话记录

Rails 4 中的 null_session 和 reset_session 有什么区别?

Rails 100% 新手问题 - send() 方法

循环大量记录时 Ruby on Rails 内存泄漏; find_each 没有帮助

Rails ActiveRecord:验证单个属性

FactoryGirl + Faker - 为数据库种子数据中的每个对象生成相同的数据

在 ID 存在时获取表的未知主键

不带参数的 request.fullpath

如何在 Rails 1.2.3 中使复选框默认为选中?

在本地 Rails 开发环境中获取真实 IP 地址

如何将变量 link_to 定义为外部 URL

Rails,设计认证,CSRF 问题

Rails SQL 正则表达式

禁用 JS/Ajax 请求时的 ActionController::InvalidAuthenticityToken

如何在两个字段上对 ruby​​/rails 进行排序?

如何强制 RSpec 测试失败?

Ruby 安装的 RVM 不工作?