Как показать текущий год?

Есть ли функция, которую я могу использовать для отображения текущего года в представлении? Я пробовал

<%= Time.now  %>

чтобы попытаться показать время, но это не работает для меня.

Ответ 3

Я думаю, что лучший способ получить текущий год , учитывая часовой пояс приложения:

Date.current.year

Ответ 4

Мне нравится использовать:

Time.zone.now.year

Это учитывает текущий часовой пояс (если вы его переопределили для определенного пользователя).

Ответ 5

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

require 'benchmark'

n = 500000
Benchmark.bm do |x|
  x.report { n.times do ; Date.today.year; end }
  x.report { n.times do ; Date.current.year; end }
  x.report { n.times do ; Time.current.year; end }
  x.report { n.times do ; Time.zone.now.year; end }
end

    user     system      total        real
0.680000   0.030000   0.710000 (  0.709078)
2.730000   0.010000   2.740000 (  2.735085)
3.340000   0.010000   3.350000 (  3.363586)
3.070000   0.000000   3.070000 (  3.082388)

Теперь, возможно, это может показаться выше всего для чего-то столь же простого, как это, однако, из простой перспективы оптимизации для приложения с высокой пропускной способностью, я рассмотрю использование Date.today.year

Сказано так, если ваше приложение чувствительно к часовому поясу, возможно, методы на основе Date.current или Time.zone - ваш лучший выбор.

Посмотрите на это замечательное Railscast от Райана по часовым поясам