Как установить дату по умолчанию в помощнике date_select в Rails - PullRequest
4 голосов
/ 02 апреля 2010

Я пытаюсь настроить помощника по дате рождения в моем приложении Rails (2.3.5). В настоящее время это так.

<%= f.date_select :date_of_birth, :start_year => Time.now.year - 110, :end_year => Time.now.year %>

Это генерирует идеально функциональный набор полей даты, которые прекрасно работают, но ....

Они по умолчанию используют сегодняшнюю дату, которая не идеальна для поля даты рождения (я не уверен, что именно, но если вы не используете неонатальное отделение, сегодняшняя дата кажется не идеальной). Вместо этого я хочу прочитать 1 января 2010 года (или 2011 год или любой другой год, в который это произошло). Использование опции: default оказалось неудачным. Я перепробовал много возможностей, включая;

<%= f.date_select :date_of_birth, :default => {:year => Time.now.year, :month => 'Jan', :day => 1}, :start_year => Time.now.year - 110, :end_year => Time.now.year %>

и

<%= f.date_select :date_of_birth, :default => Time.local(2010,'Jan',1), :start_year => Time.now.year - 110, :end_year => Time.now.year %>

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

Та.

1 Ответ

10 голосов
/ 02 апреля 2010

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

@person = Person.new(:date_of_birth => "2010-01-01".to_date)

Тогда, по вашему мнению, вы получите правильную дату.

EDIT:
Если вы хотите назначить значение по умолчанию на уровне модели, вы можете попробовать сделать это с помощью plugin . Однако я не пробовал.

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