Как использовать button_to для активации метода в контроллере - PullRequest
0 голосов
/ 31 декабря 2011

У меня есть приложение rails 3, и я пытаюсь использовать кнопку для активации метода в контроллере. Это означает, что в моем users_controller.rb у меня есть

def follow
  ...
  ...
end

И в представлении (users / show.html.erb) я хочу, чтобы кнопка вызывала этот метод. В настоящее время у меня есть <%= button_to("Un-Follow", :controller=>"users", :action=> "follow") %>, однако, когда я нажимаю на кнопку, я получаю следующую ошибку: No route matches [POST] "/users/5/follow" есть идеи, почему?

Я не уверен, как это исправить.

РЕДАКТИРОВАТЬ: я исправил config / rout.rb и исправил эту ошибку. Однако я все еще получаю ошибку на контроллере. ноль ID.

РЕДАКТИРОВАТЬ: я смог получить все, что работает без ошибок. Однако теперь, когда я нажимаю кнопку, он говорит, что нет связанных видов. Тем не менее, я хочу просто вызвать этот метод, я не хочу новое представление. Было бы лучше, вместо того, чтобы в контроллере, сделать это в помощнике?

РЕДАКТИРОВАТЬ: Наконец, по какой-то причине, когда я нажимаю кнопку «следовать», все работает. Однако, когда я нажимаю кнопку «отписаться», она не работает.

1 Ответ

2 голосов
/ 31 декабря 2011

Вам не обязательно нужен вид для действия контроллера.Вы можете просто отобразить произвольный текст.

def follow
    ...
    render :text => 'ok', :layout => false
end

Или вместо визуализации представления вы можете перенаправить на другую страницу.

def follow
    ...
    redirect_to :action => :index
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...