Изменение отметки времени магических столбцов (Rails) - PullRequest
2 голосов
/ 03 сентября 2010

Я хочу изменить временную метку по умолчанию для магических столбцов рельсов (create_at ,ified_at) вместо 2010-09-03 14:52:46 UTC Я хочу изменить ее на 10 сентября 2010 года в 02:52 ВЕЧЕРА. или, по крайней мере, разобрать таким образом.

Теперь я знаю, что могу сделать это прямо в представлении, манипулируя переменной, но разве нет более "изящного пути", где я могу просто сделать это в модели, а затем вызвать ее как метод?

Ответы [ 2 ]

4 голосов
/ 03 сентября 2010
class YourModel < ActiveRecord::Base
  def my_formated_date_time
    created_at.strftime("%B %d, %Y at %I:%M %p")
  end
end

Или вы можете использовать формат локализации. Добавьте это к вашему config/locale/your_locale.yml. ИМХО: Это был бы самый рельсовый способ.

your_locale:
  time:
    formats:
      default: "%B %d, %Y at %I:%M %p"

Тогда, по вашему мнению, сделайте это

<%=l @your_model.created_at %>
<!-- short for: -->
<%= I18n.localize @your_model.created_at %>
1 голос
/ 03 сентября 2010

Изменение даты created_at подойдет, она останется такой же, как вы ее установили, и вы можете перегрузить ее даже в начале, но updated_at или modified_at может оказаться сложным.Каждый раз, когда вы сохраняете свою модель, это меняется.Если вам не нужно это поведение, соглашение предлагает переключиться на другое имя.

Если вы хотите настроить отображение дат, вам нужно настроить форматер по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...