2014-11-09 59 views
0

我在做Hartl的教程,我想让其他用户管理员。我可以创建一个链接到更新用户属性以使其成为管理员的操作的按钮吗?创建一个按钮,使用户成为管理员

<%= button_to "Make Admin", {action: "make_admin" }, method: :put %> 

Users controller 

def make_admin 
    update_attribute(:admin, true) 
    redirect_to users_url 
end 

routes.rb 

put 'admin' => 'users#make_admin' 

无法引用正确的用户。任何建议或肯定的方式?

感谢

回答

0

路线是缺少:id。将其更改为

put 'admin/:id' => 'users#make_admin', :as => "make_admin" 

而且,button_to

<%= button_to "Make Admin", {action: "make_admin", id: current_user.id }, method: :put %> 

UsersController

def make_admin 
    user = User.find params[:id] 
    user.update(:admin => true) 
    redirect_to users_url 
end 
+0

收到此错误:没有路由匹配{:动作=> “make_admin”:控制器= >“users”} – Kohl 2014-11-09 06:03:43

+0

没关系在括号内包含id! – Kohl 2014-11-09 06:06:43

+0

你怎么知道这是一个:我的路线ID我错过了这是问题?因为你需要一个ID来编辑用户?谢谢你的帮助! – Kohl 2014-11-09 06:11:51

相关问题