2015-06-08 6 views
0

У меня есть функция голосования в моем приложении, но я не могу вернуться на ту же страницу с голосованием. Я знаю, что мне нужно заполнить методы link_to, но мое понимание синтаксиса routing/ruby ​​немного ограничено, поэтому я даже не уверен, что [сообщение, голосование] верны. Я чувствую, что мне тоже не хватает чего-то другого. Я даже предоставил достаточно информации? Как мне подойти к этой проблеме? Или еще лучше, как я могу лучше понять маршрут? Спасибо.Ruby-on-Rails Голосование Частичная маршрутизация

Вот ошибка, я получаю: No route matches [GET] "/posts/13/up-vote"

Мои голосования парциальное:

<% if policy(Vote.new).create? %> 
    <div class="vote-arrows pull-left"> 
    <div> 
     <%= link_to [post, vote], 
     post_up_vote_path(post), 
     class: "glyphicon glyphicon-chevron-up #{(current_user.voted(post) && current_user.voted(post).up_vote?) ? 'voted' : '' }" %> 
    </div> 
    <div> 
     <strong><%= post.points %></strong> 
    </div> 
    <div> 
     <%= link_to [post, vote], 
     post_down_vote_path(post), 
     class: "glyphicon glyphicon-chevron-down #{(current_user.voted(post) && current_user.voted(post).down_vote?) ? 'voted' : '' }" %> 
    </div> 
    </div> 
<% end %> 

мой routes.rb

Bloccit::Application.routes.draw do 

     devise_for :users 
     resources :users, only: [:update] 

     resources :topics do 
     resources :posts, except: [:index] 
     end 

     resources :posts, only: [] do 
     resources :comments, only: [:create, :destroy] 
     resources :favorites, only: [:create, :destroy] 
     post '/up-vote' => 'votes#up_vote', as: :up_vote 
     post '/down-vote' => 'votes#down_vote', as: :down_vote 
     end 

     get 'about' => 'welcome#about' 

     root to: 'welcome#index' 
end 
+1

вставьте свои маршруты.rb –

ответ

1

Заканчивать сообщение об ошибке: No route matches [GET] "/posts/13/up-vote". Он ищет маршрут [GET], но вы определили маршрут [POST] в своем config/routes.rb файле.

Вам необходимо добавить method: :post в оба ваших помощника link_to, чтобы вызвать запрос [POST]. Вот что это будет выглядеть так:

<%= link_to [post, vote], post_down_vote_path(post), class: "glyphicon glyphicon-chevron-down #{(current_user.voted(post) && current_user.voted(post).down_vote?) ? 'voted' : '' }", method: :post %>

Надеется, что это помогает!

+0

спасибо, что сработало! – Kris