ruby activerecord在检索记录时触摸记录
我们可以在执行select语句时触摸一下记录,这样就不会多次调用数据库了吗 我的问题是 每当我像这样检索用户时,我需要更新“updated_at”字段 否则会有多个电话 首先检索用户ruby activerecord在检索记录时触摸记录,ruby,activerecord,Ruby,Activerecord,我们可以在执行select语句时触摸一下记录,这样就不会多次调用数据库了吗 我的问题是 每当我像这样检索用户时,我需要更新“updated_at”字段 否则会有多个电话 首先检索用户 a = User.find_by_username("a") 然后更新“更新的位置” 请建议AFAIK在使用ActiveRecord(或任何ORM)的一个sql查询中无法执行选择和更新。正如您在中所看到的那样,在查找后有一个回调。因此,您应该能够在模型中使用此功能来触摸自身: class User < Ap
a = User.find_by_username("a")
然后更新“更新的位置”
请建议AFAIK在使用ActiveRecord(或任何ORM)的一个sql查询中无法执行
选择
和更新
。正如您在中所看到的那样,在查找后有一个回调。因此,您应该能够在模型中使用此功能来触摸自身:
class User < ApplicationRecord
after_find { touch }
...
end
class用户
请注意,这很可能仍然会触发两个sql查询(因此我认为他的答案仍然正确),但作为开发人员,您不必键入额外的调用,也不太可能忘记它 2个问题似乎没那么糟糕。可能是,如果您分担更大的问题,例如获取和更新100条记录,您将得到更好的答案。
User.find_by_username("a").touch
class User < ApplicationRecord
after_find { touch }
...
end