【发布时间】:2016-01-04 21:56:07
【问题描述】:
首先,我使用的是 Devise、Cancan、Role Model 和 simple_form。一切似乎都可以使用权限等等。我似乎无法做的是创建一个表单,以便我可以为用户分配角色。
这是我目前所拥有的:
<%= simple_form_for(@profile.user) do |f| %>
<%= f.input :roles_mask, as: :check_boxes, collection: User.valid_roles, :checked => [ 'member' , true] %>
<%= f.button :submit %>
这正确显示了复选框,最后一部分将其中一个标记为真。我不确定如何让它标记应该标记的角色。我随机选择了一个进行测试另外,如果我将其发送到更新,似乎什么也没有发生。我更新了,就像我通常会将我的参数限制为仅角色掩码变量一样。
def update
if @user.update(params.require(:user).permit(:roles_mask))
flash[:notice] = "Permissions updated."
redirect_to profile_path(@user.profile_id)
else
render 'edit'
end
我不知道我做错了什么。即使我可以让他们更新。不显示当前角色并不是什么大不了的事。
【问题讨论】:
标签: ruby-on-rails ruby devise simple-form cancan