Rails 5:PUT无法使用friendly_id

时间:2017-04-29 19:58:19

标签: ruby-on-rails

好的...所以现在我在第2天试图找出为什么在我的开发环境中,它可以工作,但是当我将我的应用部署到生产时不起作用。

我只是想创建一个“喜欢/ upvote”按钮并在每个帖子上计算“likes / upvotes”,然后对帖子中的每条评论执行相同操作。

由于我正在使用 friendly_id 从:title字段创建一个slug,我在 Heroku 日志中得到了这个:

  

ActionController :: RoutingError(没有路由匹配[GET]“/ posts / test / upvote”):

我显然得到“此页面不存在”错误...

以下是代码:

  

的routes.rb

  resources :posts, only: [:create, :index, :show, :destroy, :edit, :update] do
    resources :comments, only: [:show, :create, :destroy, :edit, :update] do
      member do
        put '/upvote' => 'comments#upvote'
      end
    end

    member do
      put '/upvote' => 'posts#upvote'
    end
  end
end
  

post_controller.rb

  def upvote
   @post = Post.friendly.find(params[:id])
    @post.increment!(:upvotes)
    redirect_to root_path
  end
  

comments_controller.rb

  def upvote
    @post = Post.friendly.find(params[:post_id])
    @comment = @post.comments.find(params[:id])
    @comment.increment!(:upvotes)
    redirect_to @post
  end
  

发布index.html.erb

<%= link_to "like", upvote_post_path(post), method: :put, style: "color: white;" %>

这里缺少什么,我没有看到?

0 个答案:

没有答案