Rails的collection_select自定义名称属性
问题描述:
我有以下集合选择其中充当Rails应用程序中的过滤器。Rails的collection_select自定义名称属性
<%= form_tag("/appointments", :method => "get", :id => "filter_form") do %>
<%= collection_select :doctor, :id, @doctors, :id, :full_name, {:include_blank => 'All'} %>
<% end %>
这总是产生像name="doctor[id]"
选择元件,这导致在浏览器中?utf8=✓&doctor%5Bid%5D=1
,这是不太可读的名称属性。
如何将名称属性更改为name = "doctor"
或基本上只是从中删除括号?
答
你试过:
<%= form_tag("/appointments", :method => "get", :id => "filter_form") do %>
<%= collection_select :doctor, :id, @doctors, :id, :full_name, {:include_blank => 'All', :name => 'doctor'} %>
<% end %>
答
的collection_select方法中包含的参数 “选项” 和 “html_options”。 “选项”允许您添加特定信息,如{:include_blank => 'All'}
,但不会替换html属性。
你必须名称添加到下一个哈希值,像这样:
<%= form_tag("/appointments", :method => "get", :id => "filter_form") do %>
<%= collection_select :doctor, :id, @doctors, :id, :full_name, {:include_blank => 'All'}, {:name => 'doctor'} %>
<% end %>
+0
OP,这是正确的答案 – zgohr 2013-12-18 18:28:12
是的,我想这一点,但它并没有帮助。实际上,我甚至无法理解为什么在创建选择标签时需要前两个参数。不过,我正在寻找一个Rails解决方案,但我通过使用jQuery在表单提交之前手动更改名称来解决此问题。感谢您的回答@n_i_c_k – interboy 2013-05-02 03:22:56