我不明白爲什麼permit_params不能使用自定義創建操作。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
但是,儘快我們添加自定義創建由於某些原因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
我遇到錯誤 「::加載ActiveModel ForbiddenAttributesError」 一致 「AdminUser.create(PARAMS [:admin_user])」
試了很多可能的解決方案,只有一個爲我工作,但我真不」 t等這樣的:
def create
AdminUser.create(params[:admin_user].permit(:email, :password, :password_confirmation))
do_some_magic_stuff_here
redirect_to admin_admin_users_path, notice: 'Custom create'
end
我不明白爲什麼我不能去上班默認的方式,因爲它應該工作:
def admin_user_params
params.require(:admin_user).permit(:email, :password, :password_confirmation)
end
有人可以解釋我,請問這裏發生了什麼?使用permit_params進行自定義操作的好方法是什麼?