Ruby on Rails:区分upvote和downvote

时间:2011-03-18 01:32:53

标签: jquery ruby-on-rails ruby ajax ruby-on-rails-3

我有两个按钮,一个用于upvoting,另一个用于downvoting:

<%= button_to "+1", { :action => "create", :id => @video.id }, :remote => true %>

<%= button_to "-1", { :action => "create", :id => @video.id }, :remote => true %>

它们都转到create方法,但是我想要一个名为'value'的video_votes表列设置为1,而另一个设置它等于-1。我应该在哪里做这个?

此外,由于我正在使用带有create.js.erb文件的AJAX,我是否需要在创建控制器方法中执行类似respond_to format do format.js的操作?

1 个答案:

答案 0 :(得分:2)

您可以传递一个额外的参数来表示它的投票类型。

<%= button_to "+1", { :action => "create", :id => @video.id, :type => "up" }, :remote => true %>


<%= button_to "-1", { :action => "create", :id => @video.id, :type => "down" }, :remote => true %>

在你的def创建中:

def create

  if params[:type] == "up"
    #do this
  else
    # do that
  end

end

此外,您还必须渲染create.erb.js文件。