2010-04-02 3 views
4

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

<%= 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 %> 

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

Ta.

ответ

10

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

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

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

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

+0

Я предполагаю, что это сделает трюк (хотя я пошел с @person = Person.new (: date_of_birth => "# {Time.now.year} -01-01" .to_date)). Кажется, это неловкий способ достичь этого, хотя, казалось бы, намного лучше в представлении с помощником date_select. Я бы предпочел, чтобы мой контроллер был как можно чище (отчасти из-за того, что у меня есть реальная проблема с отладкими диспетчерами, поскольку проблемы с просмотром обычно более понятны. – brad

+0

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

Смежные вопросы