Я получаю следующую ошибку при попытке уничтожить голос пользователя за «вклад»:
No route matches {:action=>"destroy", :controller=>"contribution_votes",
:id=>#<ContributionVote contribution_id: 8245, user_id: 40>}
Но понятия не имею, почему. Вот кнопка отправки запроса
<%= button_to "undo voteup!",
contribution.contribution_votes.find_by_user_id(current_user),
:method => :delete, :class => 'contribution_vote undo' %>
Вот действие «уничтожить» в контроллере:
def destroy
@vote = current_user.contribution_votes.find(params[:id])
@vote.destroy
@contribution = Contribution.find_by_id(@vote.contribution_id)
@contribution_decrement = @contribution.decrement(:votes)
if @vote.destroy and @contribution_decrement.save
respond_to do |format|
format.html {redirect_to :back}
format.js
end
else
redirect_to :back
end
end
(некоторая избыточность здесь, я знаю, но она должна быть заполнена позже)
А вот настройка в маршрутах.rb
resources :contribution_votes, :only => [:create, :destroy]
Кто-нибудь может помочь? Я подозреваю, что ответ очевиден, но я не могу найти его нигде на SO.