#ruby-on-rails #ruby-on-rails-3 #activerecord
#ruby-on-rails #ruby-on-rails-3 #activerecord
Вопрос:
Я не могу поверить, что мне даже приходится задавать этот вопрос, но это был «один из тех дней», и я вообще не могу ясно мыслить.
Я создаю простое приложение Rails, используя данные в базе данных MySQL. В одной из таблиц есть столбец для метки времени создания (creation_ts). Что я хотел бы сделать, так это создать атрибут модели, который станет частью каждого объекта модели. В этом случае, если запись имеет метку времени создания старше месяца, я хочу, чтобы для атрибута «late» было установлено значение true (false, если это не так). Тогда я мог бы позже использовать это в представлении при динамической настройке атрибутов HTML-элемента.
Опять же, я должен это знать (на самом деле, я делал это раньше). Я просто рисую полный пробел.
Ответ №1:
В Rails 3 используется ‘created_at’ для хранения даты первого сохранения. В вашей модели, скажем, Model.rb, вы могли бы добавить средство позднего доступа, определенное следующим образом:
def late?
created_at > 1.month.ago
end
Который вернет true или false.
Тогда в ваших представлениях вы могли бы сделать что-то вроде
<% if @model.late? %>
<%= @model.something_to_show %>
<% end %>
ян.
Комментарии:
1. поскольку он возвращает логическое значение, имя метода
late?
было бы подходящим.