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

Getting эту ошибку: нет соответствующего маршрута {: действие => "make_admin",: контроллер = > «users»} – Kohl

+0

неважно включил идентификатор внутри кронштейна! – Kohl

+0

как вы узнали, что это был: id в моем маршруте, который мне не хватало, что было проблемой? Потому что вам нужен идентификатор для редактирования пользователя? Спасибо за вашу помощь! – Kohl

Смежные вопросы