2

我正在尝试向我的网站添加投票。我在项目显示页面中创建和显示了改进。我试图让用户对改进进行投票,但我收到一个错误,我认为这与我如何链接“赞”按钮有关。

在我的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

使用原始的 link_to 进行投票,但单击投票按钮会将我带到改进显示页面。我想留在项目页面上。

4

2 回答 2

0

如果:

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

然后在改进控制器的(upvote?)操作中工作,只需执行以下操作:

redirect_to projects_path 在你做的任何其他事情的最后,你都是明智的。将“projects_path”更改为页面的正确路径。

于 2019-04-25T17:21:55.643 回答
0

我有同样的问题。使用原始 routes.rb 的解决方案:

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

您可以在改进控制器的 upvote 和 downvote 方法中编写 redirect_to 。

于 2020-04-13T15:13:55.987 回答