rails date_select类不会生效

时间:2013-02-27 19:44:41

标签: ruby-on-rails

我有以下使用date_select ..

<%= f.date_select :birthday, :order => [:month, :day], :prompt => { :day => 'Select day', :month => 'Select month' }, :html => {:class => "select birthday"} %>

但是这个课没有出现在html ..

<select id="profile_birthday_2i" name="profile[birthday(2i)]">
<select id="profile_birthday_3i" name="profile[birthday(3i)]">

我也试过..

<%= f.date_select :birthday, :order => [:month, :day], :prompt => { :day => 'Select day', :month => 'Select month' }, :class => "select birthday" %>

这也不起作用。有什么想法吗?

2 个答案:

答案 0 :(得分:12)

HTML选项是date_select方法的第四个参数,而不是第三个参数中的键。

来自documentation

date_select(object_name, method, options = {}, html_options = {})

所以你想要:

f.date_select :birthday, { :order => [:month, :day], :prompt => { :day => 'Select day', :month => 'Select month' } }, {:class => "select birthday"} 

答案 1 :(得分:1)

您需要使用html_options,而不是html来指定课程。

我相信这会奏效,但我没有测试过。

<%= f.date_select :birthday, :order => [:month, :day], :prompt => { :day => 'Select day', :month => 'Select month' }, :html_options => {:class => "select birthday"} %>

请参阅此处的API说明:

http://api.rubyonrails.org/classes/ActionView/Helpers/DateHelper.html

注意:文档说:

  

如果在html_options哈希中传递了任何内容,它将应用于集合中的每个选择标记。

因此,请确保您希望该类出现在每个元素上。