gpt4 book ai didi

ruby-on-rails - 路由错误 - 在 rails 中使用 activerecord-reputation-system gem 时没有路由匹配 [GET] 错误

转载 作者:太空宇宙 更新时间:2023-11-03 16:47:12 24 4
gpt4 key购买 nike

我打算将投票系统添加到我的 Rails 应用程序中,我尝试使用 activerecord-reputation-system gem 运行 reputation-system 并遵循 railscasts #364视频。

我在路由错误中苦苦挣扎,当我点击赞成票或反对票时,它显示错误“没有路由匹配 [GET] “/haikus/1/vote”

enter image description here enter image description here

/config/routes.rb:

Youhaiku::Application.routes.draw do
get 'signup', to: 'users#new', as: 'signup'
get 'login', to: 'sessions#new', as: 'login'
get 'logout', to: 'sessions#destroy', as: 'logout'

resources :users
resources :sessions
resources :haikus do
member { post :vote }
end

root to: 'haikus#index'
end

/app/controllers/haikus_controller.rb:

def vote
value = params[:type] == "up" ? 1 : -1
@haiku = Haiku.find(params[:id])
@haiku.add_evaluation(:votes, value, current_user)
redirect_to :back, notice: "Thank you for voting!"
end

/app/views/haikus/_haiku.html.erb:

<div class="haiku">
<%= simple_format haiku.content %>
<em>
-- <%= haiku.user.name %>
| <%= link_to "up", vote_haiku_path(haiku, type: "up"), method: "post" %>
| <%= link_to "down", vote_haiku_path(haiku, type: "down"), method: "post" %>
</em>
</div>

我检查了这个issue但这对我没有帮助。所以,我真的需要这方面的帮助。

最佳答案

从您收到的错误中可以看出,您正在发送 GET 请求,而 Rails 正在等待 POST 执行此操作。您需要确保使用 link_to 生成了正确的 HTML。

要实现此目的,请检查链接上的 data-method 是否为“post”。为此,您可以右键单击向上\向下投票链接,然后按检查元素。

如果它不存在,但您的 View 部分显示 method: "post",请尝试将其更改为 method: :post,正如 Pardeep 在评论中建议的那样。

关于ruby-on-rails - 路由错误 - 在 rails 中使用 activerecord-reputation-system gem 时没有路由匹配 [GET] 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30978066/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com