Проводка в контроллер через link_to - PullRequest
0 голосов
/ 15 декабря 2010

Я пытаюсь отправить на свой контроллер параметр: voice «up», чтобы он выполнял функцию голосования current_user.vote_exclusively_for (@book).Я использую gem thumbs up.

Я пытаюсь сделать это с помощью link_to, и правильные параметры отображаются в выводе моего сервера, но он не работает с контроллером.Должно быть, я что-то делаю не так, но я не уверен, что.Нужно ли делать что-то другое с маршрутами, кроме книг: ресурсы?

Это мое голосование в books_controller

 def vote
  @book = Book.find(params[:id])
    if params[:vote] == 'up'
      current_user.vote_exclusively_for(@book)
    end
      redirect_to @book
 end

И это пример link_to на мой взгляд:

<%= link_to "Vote Up", :url => { :controller => "books", :action => "vote", :vote => "up"}, :method => :post %>

Буду очень признателен за любой совет, где мои попытки разбиваются/ link_to проблема, а не сама функция.

Ответы [ 2 ]

3 голосов
/ 15 декабря 2010

Я не понимаю вашу ссылку. Кажется, отсутствует идентификатор книги, по которой она голосует?

Убедитесь, что ваш файл rout.rb выглядит следующим образом:

resources :books do
  post :vote, :on => :member
end

Затем измените вашу функцию link_to следующим образом:

 link_to "Vote Up", vote_book_path(@book, :vote => "up"), :method => :post
0 голосов
/ 01 июня 2013

У меня просто была похожая проблема, и я решил ее с помощью синтаксиса этого стиля:

<%= link_to "Vote Up", {:controller => "books", :action => :vote, :vote => "up" }, {:method => :post} %>

Также убедитесь, что в вашем rout.rb есть что-то похожее на

resources books do
  post :vote
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...