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

标签 ruby-on-rails ruby activerecord

我打算将投票系统添加到我的 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/

相关文章:

ruby-on-rails - 在一个模型上创建多个条目 - Ruby on Rails(非嵌套)

ruby-on-rails - 如何使用 Globalize3 制作本地化的回形针附件?

Ruby Net::FTP 文件名中的特殊字符

ruby-on-rails - Ruby/Rails - 通过 ActiveResource 使用 Web 服务

ruby-on-rails - 将参数传递给局部 View

javascript - 如何在 Rails 中正确传递 JSON

ruby-on-rails - 为什么 Ruby 会在 2 个看起来相同的 float 上失败?

ruby-on-rails - Rails多态关联: Restrict allowed classes

ruby-on-rails - 用户 has_many 关联不起作用(错误 :Could not find the association :user_categories in model Category)

ruby-on-rails - pg gem 安装失败