加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails-3 – Rails 3.获取最新更新

发布时间:2020-12-16 22:30:34 所属栏目:百科 来源:网络整理
导读:我正在使用Rails 3开发API.用户可以拥有多个联系人项目,如电话,电子邮件,网站和地址.每个项目都有自己的模型. 我需要在使用此API的iPhone应用程序中进行缓存,因此我需要获取任何项目的最新更新发生的日期,并将其与缓存文件的时间戳匹配. 如何获取最新的项目(
我正在使用Rails 3开发API.用户可以拥有多个联系人项目,如电话,电子邮件,网站和地址.每个项目都有自己的模型.

我需要在使用此API的iPhone应用程序中进行缓存,因此我需要获取任何项目的最新更新发生的日期,并将其与缓存文件的时间戳匹配.

如何获取最新的项目(比较所有项目表时)?

我正在为每个项目表获取最新项目.这真的很好吗?

@phones = @user.phones.order("updated_at desc").limit(1)

感谢所有的帮助!

解决方法

您可以使用ActiveRecord的触摸方法.如果您有一条包含许多子记录的父记录,这将特别有用.每次保存或销毁子记录时,父记录都会将其updated_at字段设置为当前时间.
class User < ApplicationRecord
  has_many :phones
  has_many :addresses
end

class Phone < ApplicationRecord
  belongs_to :user,touch: true
end

class Address < ApplicationRecord
  belongs_to :user,touch: true
end

现在,只要地址或电话更新,用户的updated_at就会设置为当前时间.

要检查当前用户的最后更新时间,在所有表中,您现在可以:

@last_updated = @user.updated_at

对于写入中的小开销,您可以在检查缓存过期时获得更多简单查询.有关此文档的文档可在belongs_to options下找到.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读