ActiveAdmin : member_action "approve" 在用户模型上
ActiveAdmin : member_action "approve" on User model
我想在 ActiveAdmin 的用户模型上添加一个名为 approve 的 member_action。我查看了文档,但一切都不一样,我对如何去做感到很困惑。到目前为止,我只显示批准 link(在查看、编辑和删除旁边)。
admin/user.rb :
member_action :approve, method: :post do
user = User.find params[:id]
user.approve!
redirect_to admin_user_path(user), notice: "Approved!"
end
并显示 link:
actions defaults: true do |user|
link_to 'Approve',approve_admin_user_path(user)
end
models/user.rb :
def approve!
update(bio_validee: true)
end
当我点击 link 时,出现路由错误:
No route matches [GET] "/admin/users/21/approve"
这是 rake routes
的作用(对于 admin/users 路由):
approve_admin_user POST /admin/users/:id/approve(.:format) admin/users#approve
batch_action_admin_users POST /admin/users/batch_action(.:format) admin/users#batch_action
admin_users GET /admin/users(.:format) admin/users#index
POST /admin/users(.:format) admin/users#create
new_admin_user GET /admin/users/new(.:format) admin/users#new
edit_admin_user GET /admin/users/:id/edit(.:format) admin/users#edit
admin_user GET /admin/users/:id(.:format) admin/users#show
PATCH /admin/users/:id(.:format) admin/users#update
PUT /admin/users/:id(.:format) admin/users#update
DELETE /admin/users/:id(.:format) admin/users#destroy
我是不是做错了什么?我必须添加什么?
此外,我不知道是否必须在
中使用 GET、POST 或 PUT
member_action :approve, method: :post
在那种情况下我真的不知道有什么不同。
试试这个:
member_action :approve, method: :put do
resource.approve!
redirect_to admin_user_path(resource), notice: "Approved!"
end
还有....
actions defaults: true do |user|
link_to 'Approve',approve_admin_user_path(user), method: :put
end
我想在 ActiveAdmin 的用户模型上添加一个名为 approve 的 member_action。我查看了文档,但一切都不一样,我对如何去做感到很困惑。到目前为止,我只显示批准 link(在查看、编辑和删除旁边)。
admin/user.rb :
member_action :approve, method: :post do
user = User.find params[:id]
user.approve!
redirect_to admin_user_path(user), notice: "Approved!"
end
并显示 link:
actions defaults: true do |user|
link_to 'Approve',approve_admin_user_path(user)
end
models/user.rb :
def approve!
update(bio_validee: true)
end
当我点击 link 时,出现路由错误:
No route matches [GET] "/admin/users/21/approve"
这是 rake routes
的作用(对于 admin/users 路由):
approve_admin_user POST /admin/users/:id/approve(.:format) admin/users#approve
batch_action_admin_users POST /admin/users/batch_action(.:format) admin/users#batch_action
admin_users GET /admin/users(.:format) admin/users#index
POST /admin/users(.:format) admin/users#create
new_admin_user GET /admin/users/new(.:format) admin/users#new
edit_admin_user GET /admin/users/:id/edit(.:format) admin/users#edit
admin_user GET /admin/users/:id(.:format) admin/users#show
PATCH /admin/users/:id(.:format) admin/users#update
PUT /admin/users/:id(.:format) admin/users#update
DELETE /admin/users/:id(.:format) admin/users#destroy
我是不是做错了什么?我必须添加什么? 此外,我不知道是否必须在
中使用 GET、POST 或 PUTmember_action :approve, method: :post
在那种情况下我真的不知道有什么不同。
试试这个:
member_action :approve, method: :put do
resource.approve!
redirect_to admin_user_path(resource), notice: "Approved!"
end
还有....
actions defaults: true do |user|
link_to 'Approve',approve_admin_user_path(user), method: :put
end