Rails,如何确定用户是否今天创建?

时间:2012-01-30 19:33:06

标签: ruby-on-rails ruby ruby-on-rails-3

我想要一种方法来确定用户记录是否是新记录。根据我在我的应用中需要执行此操作的位置,我想知道用户是今天还是现在创建的。

我该怎么做:

if current_user.created_at.today?

任何时区问题?也许最好在过去24小时内创建,created_at?

由于

5 个答案:

答案 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.rbconfig.time_zone = "Mountain Time (US & Canada)"
  • 中设置了正确的时区
  • 访问当前时间:Time.zone.now
  • 访问默认时区的名称:ActiveSupport::TimeZone[Rails.configuration.time_zone]
  • 检索默认时区的UTC偏移量:ActiveSupport::TimeZone[Rails.configuration.time_zone].utc_offset / 1.hour