Почему я получил неизвестное действие? - PullRequest
0 голосов
/ 15 июля 2010

У меня есть страница «manageUser», маршрут такой:

  map.manageUsers "manageUsers", :controller => "users", :action => "manageUsers"

и, как индекс пользователя, но предоставляет администратору кнопку запрета, чтобы заблокировать пользователя, поэтому яесть что-то вроде этого:

<% @users.each do |user| %>

    <td><%=h user.username %></td>

        <td><%= link_to 'Ban !', user, :confirm => 'Are you sure?', :method => :ban %></td>  

<%end%>

И пользовательский контроллер имеет такой метод:

 def ban
    @user = User.find(params[:id])    
    @user.isBan = true               
     if @user.save
       flash[:notice] = @user.username ' is successful banned.'      
     else   
       flash[:error] = @user.username ' may have greater power than you.'      

    end 
    redirect_to manageUsers_url

  end         

Но когда я нажимаю на ссылку, он показывает мне этот адрес:

http://localhost:3000/users/46

С этой ошибкой:

Неизвестное действие

Никаких действий не было получено 46. Действия:

Что происходит?спасибо.

1 Ответ

1 голос
/ 15 июля 2010

Потому что: метод в помощнике link_to должен определить HTTP-метод для запроса.Но не действие в вашем контроллере.

Вам необходимо использовать url_for system

<%= link_to 'Ban !', {:controller => 'users', :action => 'ban', :user_id => user.id}, {:confirm => 'Are you sure?'} %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...