我不明白为什么 Permit_params 不能与自定义创建操作一起使用。
例如,我们以基本的 AdminUser 资源为例。
默认情况下一切正常。我们有:
ActiveAdmin.register AdminUser do
permit_params :email, :password, :password_confirmation
form do |f|
f.inputs "Admin Details" do
f.input :email
f.input :password
f.input :password_confirmation
end
f.actions
end
end
Run Code Online (Sandbox Code Playgroud)
但是,一旦我们添加自定义创建,由于某些原因,permit_params 将不再起作用。
ActiveAdmin.register AdminUser do
permit_params :email, :password, :password_confirmation
form do |f|
f.inputs "Admin Details" do
f.input :email
f.input :password
f.input :password_confirmation
end
f.actions
end
controller do
def create
AdminUser.create(params[:admin_user])
do_some_magic_stuff_here
redirect_to backend_admin_users_path, notice: 'Custom create'
end
end
end
Run Code Online (Sandbox Code Playgroud)
我在“AdminUser.create(params[:admin_user])”行中收到错误“ActiveModel::ForbiddenAttributesError”
尝试了很多可能的解决方案,只有一个对我有用,但我真的不喜欢这个:
def create
AdminUser.create(params[:admin_user].permit(:email, :password, :password_confirmation))
do_some_magic_stuff_here
redirect_to admin_admin_users_path, …Run Code Online (Sandbox Code Playgroud)