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来处理控制器操作