Rails, как определить, был ли пользователь создан сегодня? - PullRequest
4 голосов
/ 30 января 2012

Я хотел бы узнать, является ли запись пользователя новой или нет.Исходя из того, где мне нужно сделать это в моем приложении, я хотел бы сделать это, зная, был ли пользователь создан сегодня или сейчас.

Как мне сделать что-то вроде:

if current_user.created_at.today?

Есть ли проблемы с часовым поясом?Может быть, было бы лучше, созданный за последние 24 часа?

Спасибо

Ответы [ 5 ]

13 голосов
/ 30 января 2012

Я бы лучше использовал current_user.created_at.to_date == Date.current, так как это более очевидно.

8 голосов
/ 30 января 2012

Чтобы проверить, был ли пользователь создан за последние 24 часа, сделайте что-то вроде этого:

if current_user.created_at > Time.now - 24.hours
  #...
end
4 голосов
/ 30 января 2012

у вас определенно есть несколько подходов, поэтому я также люблю rails && ruby. В любом случае, не забывайте про Закон Деметры , поэтому я пойду со следующим:

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...
0 голосов
/ 30 января 2012

Если ваше приложение должно поддерживать часовые пояса:

  • Убедитесь, что в config/application.rb указан правильный часовой пояс: config.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
0 голосов
/ 30 января 2012

Или ...

 scope :today, lambda {
   where('authdate = ?', Date.today )
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...