2012-02-28 26 views
0

我打電話給隨機Post並允許用戶在加載其他帖子之前+1或-1的帖子。我的模型使用以下內容在URL/posts/random中生成隨機記錄。Rails使用相同的URL更新PUT

Post.rb //模式

def self.find(*args) 
    if args.first.to_s == "random" 
    Post.find :first, :offset => rand(Post.count) 
    else 
    super 
end 

此代碼生成一個隨機的職位,當用戶訪問文章/隨機的。但是,我還在數據庫中定義了一個thumbs_upthumbs_down字段,該字段對應於thumb_upthumb_down圖片,點擊時需要+1或-1數據庫中的值,然後重定向到另一個/ posts/random。我的理解是,要做到這一點,我需要調用PUT更新方法,但是,由於我的URL是posts/random而不是posts/1,我怎麼能做到這一點?我需要改變我的路線嗎?

+0

你似乎錯過了一個'end'。 – 2012-02-28 20:26:58

+0

啊,是的,謝謝你,那是一個複製錯誤。這部分很適合從數據庫中生成隨機文章。我的問題是我可以調用PUT更新,儘管我的固定URL? – 2012-02-28 20:32:17

+0

我生成了一個jQuery腳本來完成一個類似的任務(例如,它調用param被改變的put方法),但我不確定這是否是「正確的方式」。 – ScottJShea 2012-02-28 20:32:27

回答

2

首先,您需要的是一個表示隨機帖子的實例變量,以便您可以在豎起大拇指和拇指向下的鏈接中使用它。然後,你需要確保這些鏈接是這個樣子:

<%= link_to "Thumbs Up", post_path(@post, thumbs_up: 1), method: :put %> 
<%= link_to "Thumbs Down", post_path(@post, thumbs_down: 1), method: :put %> 

這樣,當在自己的帖子控制器的更新動作,你可以做這樣的事情:

@post.update_attributes(thumbs_up: @post.thumbs_up + params[:thumbs_up],thumbs_down: @post.thumbs_down + params[:thumbs_down]) 

也就是說只是一個開始,但我認爲這應該讓你朝着正確的方向前進。

+0

非常感謝!我喜歡Rails和圍繞它的社區。 – 2012-02-28 20:33:29

相關問題