Rails – 收集集的单选按钮

我有以下输出选择框:


true %>

什么是rails方法来代替输出单选按钮?

对于单选按钮,您必须自己迭代并输出每个单选按钮及其标签。 事实上这很容易。

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

在Rails 4中有一个collection_radio_buttons :

 <%= f.collection_radio_buttons :request_type_id, RequestType.all, :id, :title %> 

使用simple_form gem:

在控制器中:

 @request_types = RequestType.all 

在一种forms:

 <%= f.association :request_type, collection: @request_types, as: :radio_buttons %> 

如何将f.collection_radio_buttonsEnum用作集合的示例:

 <%= f.collection_radio_buttons :reason, MyEnum.statuses.map {|k,v| [k,k]}, :first, :last do |b| %> 
<%= b.radio_button %> <%= b.label %>
<% end %>

我不认为Rails中有默认选项来实现这一点; 幸运的是,插件是你的朋友,我觉得你想要的东西很简单,只需要simple_form 。

这是你的单选按钮,你可以在下面这样: –

 <%= f.radio_button:request_type_id,'1',{"id","title"} %>id <%= f.radio_button:request_type_id,'2',{"id","title"} %>title