Dog*_*Dog 3 cancan activeadmin ruby-on-rails-4 rolify
使用Rails 4.0,ActiveAdmin,Rolify和CanCan,通过activeadmin面板添加和删除用户角色不会保存(提交到数据库).
我的ActiveAdmin用户和用户模型看起来没问题,因为我可以使用check_boxes列出适用于用户的所有角色.虽然通过复选框添加任何角色或删除任何角色时,不会应用更改.

我收到用户已成功更新的通知,但在查看数据库或呈现页面时,角色尚未更新.
如何保存表单时更新角色?
编辑:
也使用Devise.

此处的解决方案是允许ActiveAdmin控制器更新与用户相关的角色ID.
ActiveAdmin.register User do
permit_params :email, :password, :password_confirmation, role_ids: []
Run Code Online (Sandbox Code Playgroud)
这是一个表单,显示每个全局角色的复选框.
form do |f|
f.inputs "User Details" do
f.input :email
f.input :password
f.input :password_confirmation
f.input :roles, as: :check_boxes
end
f.actions
end
Run Code Online (Sandbox Code Playgroud)
在我们处理它的同时,我们也可以在不输入密码的情况下更新用户:
# Allow form to be submitted without a password
controller do
def update
if params[:user][:password].blank?
params[:user].delete "password"
params[:user].delete "password_confirmation"
end
super
end
end
Run Code Online (Sandbox Code Playgroud)
将所有这些放在app/admin/user.rb中.
| 归档时间: |
|
| 查看次数: |
3824 次 |
| 最近记录: |