为什么我的增量不正常?

时间:2011-08-23 00:40:32

标签: ruby-on-rails-3 increment

我有一个简单的系统,其中照片有很多评论。 我确定我没有做到这一点,但我正在努力为评论建立一个简单的评级系统。 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' %>

这不起作用。我意识到这是一个基本问题,但我很感激任何建议。感谢。

3 个答案:

答案 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