Rails 4.1.4,Ruby 2.1.2。 Postgres的。
我有一个具有roles
属性的用户模型。 roles属性是postgres数组类型。我正在尝试使用不同角色选项的复选框创建一个表单,用户可以选择它们适合的角色。如果他们选择“导演”复选框,他们的roles
属性,现在您应该看到:
@user.roles = ['director']
。
我正在尝试使用form_for,但也许这是不可能的。
有谁知道怎么做?
form_for(@user) do |f|
f.check_box :roles ...?
答案 0 :(得分:1)
form_for(@user) do |f|
f.check_box :roles, User::ROLES #assuming you have a constant ROLES holding your roles.
由于评论而进行编辑
答案 1 :(得分:1)
你可以试试这个
form_for(@user) do |f|
f.collection_check_boxes(:roles, @user.roles, :id, :labeling_method )
更多细节
http://apidock.com/rails/v4.0.2/ActionView/Helpers/FormOptionsHelper/collection_check_boxes
答案 2 :(得分:0)
假设您的用户
中有一些字符串常量<%= form.collection_check_boxes(:roles, USER::ROLES_STRINGS[access_if_you_need_from_this_constant_but_we_need_an_array_here].keys, :to_s, Proc.new{|l| USER::ROLE_STRINGS[access_if_you_need_from_this_constant_but_we_need_an_array_here][l]}) %>
应该根据你的结构工作/让你靠近!