我已成功合并设计、活动管理员和 cancan,使用单个用户模型在我的 Web 应用程序的管理员和前端进行授权和身份验证,我是否批准了用户模型的布尔标志?这样他们就可以发布他们的应用程序(数据库中批准状态的真假)。现在我想“只”通过管理页面批准用户。
in app\model\user.rb
def approve!
#set approved boolean state in database to true
approved = true
end
def disapprove!
#set approved boolean state in database to false
approved = false
end
在活跃的管理员中,我有。
app\admin\user.rb
member_action :approve, :method => :put do
App.find(params[:id]).approve!
redirect_to [:admin, resource], :notice => "Developer Approved"
end
member_action :disapprove, :method => :put do
user = User.find(params[:id])
user.disapproved!
redirect_to admin_user_path(user), notice: "Successfully Disapproved Developer!"
end
这对于列链接
column "Approve Developer" do |user|
if user.developer? && user.approved_developer?
link_to 'Disapprove Developer', "#"
elsif user.developer? && !user.approved_developer?
link_to 'Approve Developer',approve_admin_user_path
else
"Not A Developer"
end
end
运行 rake 路线告诉我
approve_admin_user PUT /admin/users/:id/approve(.:format) admin/users#approve
disapprove_admin_user PUT /admin/users/:id/approve(.:format) admin/users#disapprove
一切似乎都很好,但是当我加载页面并单击批准开发人员链接或不批准开发人员链接时,我收到No route matches {:action=>"approve", :controller=>"admin/users"}
错误。
我还为活动管理员设置了路由,如ActiveAdmin.routes(self)
routes.rb 我也有一个resources :users
我仍然不知道我在这里做错了什么 非常感谢帮助 谢谢