如何用ActiveAdmin在rolify中更新Ruby on Rails 4的角色?
- 内容介绍
- 文章标签
- 相关推荐
本文共计327个文字,预计阅读时间需要2分钟。
使用Rails 4.0、ActiveAdmin、Rolify和CanCan,通过ActiveAdmin界面添加和删除用户角色不会保存到数据库(不会提交到数据库)。我的ActiveAdmin User和User Model看起来没有问题,因为我可以使用复选框列表来展示用户的角色。
我的ActiveAdmin User and User Model看起来没问题,因为我可以使用check_boxes列出适用于用户的所有角色.虽然通过复选框添加任何角色或删除任何角色时,不会应用更改.
我收到用户已成功更新的通知,但在查看数据库或呈现页面时,角色尚未更新.
如何保存表单时更新角色?
编辑:
也使用Devise.
此处的解决方案是允许ActiveAdmin控制器更新与用户相关的角色ID.ActiveAdmin.register User do permit_params :email, :password, :password_confirmation, role_ids: []
这是一个表单,显示每个全局角色的复选框.
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
在我们处理它的同时,我们也可以在不输入密码的情况下更新用户:
# 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
将所有这些放在app / admin / user.rb中.
本文共计327个文字,预计阅读时间需要2分钟。
使用Rails 4.0、ActiveAdmin、Rolify和CanCan,通过ActiveAdmin界面添加和删除用户角色不会保存到数据库(不会提交到数据库)。我的ActiveAdmin User和User Model看起来没有问题,因为我可以使用复选框列表来展示用户的角色。
我的ActiveAdmin User and User Model看起来没问题,因为我可以使用check_boxes列出适用于用户的所有角色.虽然通过复选框添加任何角色或删除任何角色时,不会应用更改.
我收到用户已成功更新的通知,但在查看数据库或呈现页面时,角色尚未更新.
如何保存表单时更新角色?
编辑:
也使用Devise.
此处的解决方案是允许ActiveAdmin控制器更新与用户相关的角色ID.ActiveAdmin.register User do permit_params :email, :password, :password_confirmation, role_ids: []
这是一个表单,显示每个全局角色的复选框.
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
在我们处理它的同时,我们也可以在不输入密码的情况下更新用户:
# 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
将所有这些放在app / admin / user.rb中.

