Rails - 收集集的单选按钮

时间:2010-11-11 05:38:12

标签: ruby-on-rails ruby-on-rails-3

我有以下输出选择框:

<%= f.label :request_type_id %><br />
<% requestTypes = RequestType.all %>
<%= f.collection_select :request_type_id, requestTypes, :id, :title, :prompt => true %>

输入单选按钮的rails方法是什么?

6 个答案:

答案 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_buttonsEnum用作集合的示例:

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