2012-02-21 10 views
0

現在、アップまたはダウン機能を備えた評価カウンターを作成しようとしています。誰かが投稿を好きであるとか、別のモデルを作成して評価カウンターを表示しているがカウンターが投稿に属していることを示すために、私の投稿にコラムを追加しなければならないのは混乱しています。 RedditやStackoverflowのラインに沿ったもの。また、この評価カウンターから、どの方法が適切な方法であるか、どのようにして始めますか?みんなありがとう。Rails:ランクアップまたはダウンカウンター、喪失

編集 - 現在立ち往生ここから上に移動する方法について

評価

class Rating < ActiveRecord::Base 
    attr_accessible :post_id, :user_id, :rating 
    has_many :post 
    has_many :users 

    validates :post_id, presence: true 

end 

評価コントローラ

class RatingController < ApplicationController 

    def create 
    @post = Post.find(params[:id]) 
    @post.rating_count = @post.rating_count + 1 
    end 
end 

評価フォーム

<%=form_tag @rating do %> 
<%=submit_tag :Rating%> 
<%end%> 

答えて

0

別のモデルを作成する必要があります。これには、user_id、post_id、およびratingの列が格納されます。

class Post < ActiveRecord::Base 
    has_many :ratings 
end 

class Rating < ActiveRecord::Base 
    has_many :posts 
    has_many :users 
end 

次に、適切な投稿のすべての評価、適切なユーザーの投稿の評価などを取得できます。

あなたも、他のモデルのための評価機能を提供する多型リレーションを作成することができます。

class Post < ActiveRecord::Base 
    has_many :ratings, as: :rateable 
end 

class Rating < ActiveRecord::Base 
    has_many :rateable, polymorphic: true 
    has_many :users 
end 
+0

あなたが編集を見てすることはできますか?私はどこに行くのか混乱しています。どうもありがとうございます! – Kellogs

+0

rate_upやrate_downのように、PostsControllerに2つのモデルを定義することができます。それぞれの場合、認証されたユーザーと有効な投稿を確認し、呼び出されたメソッドに応じて評価モデルを作成する必要があります。ポストを評価するためのパスは、例えば/ posts /:id/rate_upと/ posts /:id/rate_downです。 – Hck

関連する問題