开发者

How to set default date in date_select helper in Rails

开发者 https://www.devze.com 2022-12-25 05:05 出处:网络
I\'m trying to set up a date of birth helper in my Rails app (2.3.5). At present it is like so. <%= f.date_select :date_of_birth, :start_year => Time.now.year - 110, :end_year => Time.now.ye

I'm trying to set up a date of birth helper in my Rails app (2.3.5). At present it is like so.

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

This generates a perfectly functional set of date fields that work just fine but....

They default to today's date which is not ideal for a date of birth field (I'm not sure what is but unless you're running a neonatal unit today's date seems less than ideal). I want it to read Jan 1 2010 instead (or 2011 or whatever year it happens to be). Using the :default option has proven unsuccessful. I've tried many possibilities including;

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

and

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

None of this changes the behaviour of the first exa开发者_运维知识库mple. Does the default option actually work as described? It seems that this should be a fairly straightforward thing to do.

Ta.


I think that easiest way is to assign it in controller, for example for new action:

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

Then in your view you will get correct date.

EDIT:
If you want to assign default value on model level, you can try do it with plugin. However I haven't try it.

0

精彩评论

暂无评论...
验证码 换一张
取 消