Поля даты и ввод текста в рельсах - PullRequest
3 голосов
/ 28 декабря 2011

У меня есть миграция:

  def change
    create_table :tasks do |t|
      t.date :date, :null => false
    end
  end

И вид:

<%= form_for @task do |f| %>
<%= f.text_field :date %>
<% end %>

Проблемы

  1. Почему у меня есть «2011-12-23 00:00:00» вместо «2011-12-23» для записей, которые уже находятся в базе данных? В базе данных они находятся в формате «2011-12-23».

  2. Как можно интернализировать даты, чтобы у меня могли быть такие даты, как "12.23.11".

Ответы [ 2 ]

6 голосов
/ 04 января 2012

Полагаю, вы можете использовать опцию value и i18n API / l helper.Что-то вроде:

<%= f.text_field :date, :value => l(@model.date) %>

Тогда в вашем файле локали:

# config/locales/your_locale.yml
your_locale:
  date:
    formats:
      # Whatever format that fits your needs
      default: "%d/%m%/%Y"
0 голосов
/ 31 декабря 2011

Создайте помощника, который возьмет значение и выплюнет что-то более приятное

def prettifydate(ugly)
   return ugly.strftime('%m.%d.%Y')
end

В вашей форме возьмите значение в качестве вспомогательного метода и верните красивую строку.

<%= form_for @task do |f| %>
   <%= f.text_field :date, :value => prettifydate(@task.date) %>
<% end %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...