gpt4 book ai didi

ruby-on-rails - 如何仅针对列更新的子集更新模型的 "updated_at"字段?

转载 作者:行者123 更新时间:2023-12-04 07:38:34 26 4
gpt4 key购买 nike

有一个典型的博客应用程序。每个用户都有_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/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com