Ruby on rails 4 在rails 4中创建活动管理员
我有一个用户模型和内部的积极管理,我写了像Ruby on rails 4 在rails 4中创建活动管理员,ruby-on-rails-4,activeadmin,strong-parameters,Ruby On Rails 4,Activeadmin,Strong Parameters,我有一个用户模型和内部的积极管理,我写了像 ActiveAdmin.register User do controller do def permitted_params params.require(:user).permit(:username,:email,:password,:password_confirmation, :admin, :locked, :first_name, :last_name, :
ActiveAdmin.register User do
controller do
def permitted_params
params.require(:user).permit(:username,:email,:password,:password_confirmation,
:admin, :locked, :first_name, :last_name, :work_phone, :cell_phone,
:cell_carrier, :fax, :temp_password,
:active, :company_id, :group_id, role_ids:[])
end
def create
@user = User.new(params[:user])
if @user.save
redirect_to admin_users_path
else
render :new
end
end
end
end
但当我试图创建用户时,它会显示一个错误,如ActiveModel::禁止属性错误-ActiveModel::禁止属性错误:
我做错了什么?继承资源使用允许的参数有点奇怪。实际上,您无法使用
require
键。您必须向permit
方法传递散列
ActiveAdmin.register User do
permit_params :username, :email, :password, :password_confirmation,
:admin, :locked, :first_name, :last_name, :work_phone, :cell_phone,
:cell_carrier, :fax, :temp_password,
:active, :company_id, :group_id, role_ids:[]
end
end
如果您使用的是最新版本的ActiveAdmin,那么还应该能够使用permit\u params
方法
ActiveAdmin.register User do
permit_params :username, :email, :password, :password_confirmation,
:admin, :locked, :first_name, :last_name, :work_phone, :cell_phone,
:cell_carrier, :fax, :temp_password,
:active, :company_id, :group_id, role_ids:[]
end
end
此外,如果要覆盖create
方法,则必须使用allowed_params
代替params[:user]
,这很可能是当前错误的原因。不过,在自定义的创建操作中,您看起来并没有做什么特别的事情,因此,除非您计划做更多的事情,否则您可能应该让ActiveAdmin来处理控制器操作