我有以下输出选择框:
<%= f.label :request_type_id %><br />
<% requestTypes = RequestType.all %>
<%= f.collection_select :request_type_id, requestTypes, :id, :title, :prompt => true %>
输入单选按钮的rails方法是什么?
答案 0 :(得分:15)
对于单选按钮,您必须自己迭代并输出每个单选按钮及其标签。事实上这很容易。
<% RequestType.all.each do |rt| %>
<%= f.radio_button :request_type_id, rt.id %>
<%= f.label :request_type_id, rt.title %>
<% end %>
或者在haml中,如果它优于erb:
- RequestType.all.each do |rt|
= f.radio_button :request_type_id, rt.id
= f.label :request_type_id, rt.title
答案 1 :(得分:6)
在Rails 4中有一个collection_radio_buttons:
<%= f.collection_radio_buttons :request_type_id, RequestType.all, :id, :title %>
答案 2 :(得分:2)
如何将f.collection_radio_buttons
与Enum
用作集合的示例:
<%= f.collection_radio_buttons :reason, MyEnum.statuses.map {|k,v| [k,k]}, :first, :last do |b| %>
<div class='your-class'>
<%= b.radio_button %>
<%= b.label %>
</div>
<% end %>
答案 3 :(得分:1)
使用simple_form gem:
在控制器中:
@request_types = RequestType.all
表格形式:
<%= f.association :request_type, collection: @request_types, as: :radio_buttons %>
答案 4 :(得分:0)
我认为Rails中没有默认选项来实现这一目标;幸运的是插件是你的朋友,我认为simple_form可以很容易地找到你想要的东西。
答案 5 :(得分:0)
以下是您的单选按钮,如下所示: -
<%= f.radio_button:request_type_id,'1',{"id","title"} %>id
<%= f.radio_button:request_type_id,'2',{"id","title"} %>title