2014-11-09 76 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

相關問題