作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有一个典型的博客应用程序。每个用户都有_many 个帖子。每个帖子都有_many 标签。
我正在按 updated_at 对每个帖子进行排序,因此最近更新的帖子将显示在顶部。因此,例如,如果我更新帖子的内容,该帖子将出现在顶部。但是,当我添加标签时也会发生这种情况,因为标签已连接到其相应的帖子。
我只希望内容更新更改 updated_at 字段。我不希望 update_at 更改帖子,因为我添加了标签。有没有办法做到这一点?或者任何其他方式来实现这样的目标?谢谢!
最佳答案
我想到了两种方法:
:updated_at
出于您使用它的目的。而是创建一个新列,比如 :post_updated_at
,并在每次保存时手动更新它,以使帖子移至顶部。 Rails 为此提供了一个方便的模型方法:mypost.touch :post_updated_at
:updated_at
时要保持原样,请使用 #update_column
方法,它直接使用您提供的值更新数据库中的列。请注意,它会将值逐字写入数据库,因此如果所讨论的列是花哨的 serialize
,您将必须很聪明。列或类似。 关于ruby-on-rails - 如何仅针对列更新的子集更新模型的 "updated_at"字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10036807/
我是一名优秀的程序员,十分优秀!