我想要一种方法来确定用户记录是否是新记录。根据我在我的应用中需要执行此操作的位置,我想知道用户是今天还是现在创建的。
我该怎么做:
if current_user.created_at.today?
任何时区问题?也许最好在过去24小时内创建,created_at?
由于
答案 0 :(得分:13)
我宁愿使用current_user.created_at.to_date == Date.current
,因为它更加自我解释。
答案 1 :(得分:8)
要检查用户是否是在过去24小时内创建的,请执行以下操作:
if current_user.created_at > Time.now - 24.hours
#...
end
答案 2 :(得分:4)
你肯定有几种方法,这也是我喜欢rails&& amp;红宝石。 无论如何不要忘记Demeter Law,因此我将使用以下内容:
class User
# ... methods and other active record stuff
def created_today?
self.created_at.to_date == Date.today
end
end
并且您可以看到今天是否使用以下api创建了用户
if User.find(params[:id]).created_today?
#do something...
答案 3 :(得分:0)
或者...
scope :today, lambda {
where('authdate = ?', Date.today )
}
答案 4 :(得分:0)
如果您的应用需要支持时区:
config/application.rb
:config.time_zone = "Mountain Time (US & Canada)"
Time.zone.now
ActiveSupport::TimeZone[Rails.configuration.time_zone]
ActiveSupport::TimeZone[Rails.configuration.time_zone].utc_offset / 1.hour