Как написать link_to для временных вложенных ресурсов act_as_votable? - PullRequest
1 голос
/ 25 апреля 2019

Я пытаюсь добавить голосование на свой сайт.У меня есть улучшения , которые создаются и отображаются на странице проекты .Я пытаюсь разрешить пользователям голосовать за улучшения, но я получаю сообщение об ошибке, которое, по-моему, связано с тем, как я связываю кнопку «Мне нравится».

в моем файле routes.rb:

  resources :projects do

    resources :improvements do      
        member do
            put "like" => "improvements#upvote"
            put "unlike" => "improvements#downvote"
        end

    end
   end

На мой взгляд:

<%= link_to like_improvement_path(improvement), class: "like", method: :put do %>

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

<%= link_to project_like_improvement_path(improvement), class: "like", method: :put do %>

Но это не работает.Поэтому я попытался сделать это на своем routes.rb:

  resources :projects do

    resources :improvements

  end

   resources :improvements do       
        member do
            put "like" => "improvements#upvote"
            put "unlike" => "improvements#downvote"
        end
   end

. Используя оригинальную ссылку, голосование работает, но нажатие на кнопку голосования возвращает меня на страницу показа улучшений.Я хочу остаться на странице проектов.

1 Ответ

0 голосов
/ 25 апреля 2019

Если:

<%= link_to like_improvement_path(improvement), class: "like", method: :put do %>

Работает тогда в действии контроллера улучшений (upvote?) Просто выполните:

redirect_to projects_path В конце всего, что вы делаете, модель мудрая. Измените "projects_path" на правильный маршрут для страницы.

...