2012-02-28 5 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 

このコードは、ランダムなポストを生成するときに、ユーザーの訪問の記事/ランダム。しかし、私はまたthumb_upthumb_downイメージに対応するデータベース内のthumbs_upthumbs_downフィールドを定義しました。クリックするとデータベース内の値を+1または-1して別の/ posts/randomにリダイレクトする必要があります。私の理解は、私のURLはposts/1の代わりにposts/randomなので、これを行うにはPUTの更新メソッドを呼び出す必要があるということです。どうすればいいですか?ルートを変更する必要がありますか?

+0

あなたは 'end'を欠いているようです。 –

+0

ああ、ありがとう、それはコピーエラーだった。この部分は、データベースからランダムな投稿を生成するのに適しています。私の質問は私の固定URLにもかかわらずPUTアップデートを呼び出すことができますか? –

+0

jQueryスクリプトを生成して同様のタスクを実行しました(たとえば、paramを変更してputメソッドを呼び出すなど)が、 "正しい方法"であるかどうかはわかりません。 – ScottJShea

答えて

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とそれを取り巻くコミュニティが大好きです。 –

関連する問題