显示复选框而不是下拉选择

时间:2016-03-19 13:20:56

标签: ruby-on-rails forms twitter-bootstrap select

我有以下表格:

<%= form_for @user  do |f| %>
   <div class="form-group">
      <%= f.label :extra_act %>
      <%= f.select(:extra_act, [['Act 1', 1],['Act 2', 2], ['Act 3', 3]], class: 'form-control', required: true)  %></br>
   </div>
<%= f.submit 'Submit', class: 'btn btn-primary' %>
<% end %>

有没有办法提供复选框而不是下拉选择菜单?我在ruby网站上找到了复选框,但我只希望用户可以选择一个复选框。

2 个答案:

答案 0 :(得分:0)

您可以使用单个选择列表(意味着多选属性应该关闭)或无线电组。

无论哪种方式满足您的需求。

答案 1 :(得分:0)

这适用于rails 4+

您希望用户只选择一个值,而不是check_box,而您需要radio button。以下是如何做到这一点(语法):

collection_radio_buttons(method, collection, value_method, text_method, options = {}, html_options = {}, &block)

使用您的代码:

f.collection_radio_buttons(:extra_activity_id, ExtraActivity.all, :id, :title, html_options: { class: 'form-control' }

对于rails 3,您需要循环执行额外的活动:

<% ExtraActivity.all.each do |ea| %>
  <%= f.radio_button :extra_activity_id, ea.id %>
<% end %>

由于你没有这个是数据库而你正在使用数组然后这样做,它可能会工作:

f.collection_radio_buttons(:extra_activity_id, [['Act 1', 1],['Act 2', 2], ['Act 3', 3]], :last, :first, html_options: { class: 'form-control' }