Rails 3.使用复选框在一列中有多个值

时间:2012-03-09 17:19:37

标签: ruby-on-rails ruby forms authentication checkbox

我遵循了这个railscast http://railscasts.com/episodes/189-embedded-association?view=comments,我觉得这很棒,但我想稍微处理一下角色。

我想要一个用于存储逗号分隔值的列“角色”,例如:“administrator,teacher”,以便用户分配管理员和教师角色。

我想设置复选框。

我目前所保存的内容是"---\n- administrator\n- teacher\n- ''\n"

我怎么能这样做?

_form.html.erb
<div class="group">
  <%= f.label :roles, "Roles", :class => :label %>
  <% for role in User::ROLES %>
    <%= check_box_tag "user[roles][]", role, @user.roles.include?(role) %>
    <%=h role.humanize %><br />
  <% end %>
  <%= hidden_field_tag "user[roles][]", "" %>
</div>

user.rb
ROLES = %w[superadmin admin instructor salesperson student]

1 个答案:

答案 0 :(得分:2)

查看代码 下面应该工作

<% form_for @user do |f|%>
<div class="group">
  <%= f.label :roles, "Roles", :class => :label %>
  <% for role in User::ROLES %>
    <%= f.check_box :roles, :name => "#{f.object_name}[roles][]", role%>
    <%= h role.humanize %><br />
  <% end %>
</div>
<% end %>

了解更多信息read类似的内容