我有一个简单的系统,其中照片有很多评论。
我确定我没有做到这一点,但我正在努力为评论建立一个简单的评级系统。 comment.rating
从0开始,可以上升。
这是我的评论控制器的一部分
class CommentsController < ApplicationController
def increment
@comment = Comment.find(params[:id])
@comment.rating += 1
redirect_to(@photo)
end
end
我认为increment
方法很好,但我怎么称呼它不是:
<%= link_to "+", :controller => 'comments', :method => 'increment' %>
这不起作用。我意识到这是一个基本问题,但我很感激任何建议。感谢。
答案 0 :(得分:1)
<%= link_to "+" , :controller => "comments", :action => "increment", :id => @comment %>
答案 1 :(得分:1)
<%= link_to "+" , :controller => "comments", :action => "increment", :id => comment.id %>
请记住,通常这样的操作会使用POST或PUT,在这种情况下,你需要指定:方法:post或:put。
如果您在路线中添加了增量,您还可以使用:
<%= link_to "+", increment_comment_path(comment.id) %>
答案 2 :(得分:1)
我相信你没有发表评论:id to params。
您可以通过在routes.rb
文件中定义这样的路线来实现:
match 'increment_rating/:comment_id' => 'Comments#increment', :as => 'increment_rating'
现在以
开头的increment
操作
def increment
@comment = Comment.find(params[:comment_id])
...
end
然后使用
从视图中调用它<%= link_to '+', increment_rating_path(comment.id) %>
其中comment.id
给出了要增加评级的评论的ID