2011-03-18 69 views
0

我有兩個按鈕,一個用於upvoting,一個用於downvoting:Ruby on Rails:區分upvote和downvote

<%= 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的操作?

回答

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 create 

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

end 

你也必須呈現create.erb.js文件。

+0

啊,讓事情變得簡單。兩個問題:1.你是什麼意思的「渲染」create.js.erb? 2.你是怎麼知道的:type是params散列中的關鍵字? – 2011-03-18 01:58:52

+0

它不是特定的只是鍵入,你可以命名它:typeabcfoobar,這並不重要。當我說渲染create.js.erb時,我的意思是你說的:respond_to – 2011-03-18 02:00:40