如何在Rails中为collection_select设置HTML选项?

tyb*_*103 78 html ruby-on-rails drop-down-menu

我似乎无法找到将类添加到由Rails生成的select标记的语法collection_select.一些帮助?

小智 176

许多Rails助手采用多个哈希参数.第一个通常是控制帮助器本身的选项,第二个是html_options,您可以在其中指定自定义ID,类等.

方法定义如下所示:

collection_select(object, method, collection, value_method, text_method, options = {}, html_options = {})
Run Code Online (Sandbox Code Playgroud)

你会注意到参数列表中的多个'= {}'.要使用它,您要指定的第一组选项实际上必须用大括号括起来:

collection_select(:user, :title, UserTitle.all, :id, :name, {:prompt=>true}, {:class=>'my-custom-class'})
Run Code Online (Sandbox Code Playgroud)

如果除了html类之外没有任何指定选项,那么只需添加一个空的哈希占位符:

collection_select(:user, :title, UserTitle.all, :id, :name, {}, {:class=>'my-custom-class'})
Run Code Online (Sandbox Code Playgroud)

有关其他API文档,请访问:http: //apidock.com/rails/ActionView/Helpers/FormOptionsHelper/collection_select

  • 谢谢你的明确解释.这是Rails的诡计之一,在RailsDocs中记录不足. (3认同)

drj*_*nco 8

= f.collection_select :category_id, Category.order(:name), :id, :name, {}, {class: "store-select"}
Run Code Online (Sandbox Code Playgroud)