0

マイクロポストテーブルのデータベースに新しい列を作成しましたが、これらの列はvote_countcomment_countで、投票モデルvote_upカウントとコメントモデルコメントカウントに接続します。票とコメントはありますが、これらの列を追加したばかりなので、これらの他のモデルをマイクロポストモデルに接続して新しい列を埋め込むにはどうすればよいですか。どんな提案も大歓迎です!Rails:モデルを別のモデルに接続

Micropostモデル

class Micropost < ActiveRecord::Base 
    attr_accessible :title, :content, :view_count 
    acts_as_voteable 
    belongs_to :school 
    belongs_to :user 
    has_many :comments 
    has_many :views 
    accepts_nested_attributes_for :comments 
end 

答えて

1

あなたが何をしようとしていることはサポートレールcounter_cacheを、使用しているが、あなたは間違った列の名前を持っているように見えます。

comments_countvotes_countの列を、所有するデータベースではなくデータベースに追加します。

次のように次に、あなたがあなたのモデルにそれをフックすることができます:

class Micropost< ActiveRecord::Base 
    attr_accessible :title, :content, :view_count 
    acts_as_voteable 
    belongs_to :school 
    belongs_to :user 
    has_many :comments, :counter_cache => true 
    has_many :views 
    accepts_nested_attributes_for :comments 
end 

あなたのacts_as_votableモジュールといくつかの余分なコードを使用しているが、カウンタのキャッシュがあるので、それの票の半分は少しトリッキーです私があなたを正しく理解すれば、あなたが行きたいと思う方法。 http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html

+0

私が持っているmicropostコメントの数をカウントmircopostテーブルのcomments_count列を持っているだけで、自動的にこの列を行います。ここでは

は、それらの詳細がありますか?また投票のために、私はacts_as_voteableを使用しているので、私はそこに自動的に数えていくより多くがあると仮定していますか? – Kellogs

+1

コメントのために、自動的にcomments_countを増減します。あなたのマイクロポストの現在のコメント数を得るには、 'comments_count'と呼ばれることができます。 acts_as_votableの場合は、「キャッシュ」の下にあるhttps://github.com/ryanto/acts_as_votableを参照してください。指定したとおりにデータベースに列を追加するだけで済みます。 – TheDelChop

+0

mmmこの列を追加する前に既にいくつかのコメントがありますが、これを更新してこの列に保存する方法はありますか?また、投票プロセスでは、これを行う方法について知っていますか? – Kellogs

関連する問題