好的...所以现在我在第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;" %>
这里缺少什么,我没有看到?