0

我剛剛在我的數據庫中爲我的微博表創建了新列,這些列是vote_countcomment_count,我想將它連接到投票模型vote_up計數和Comment模型評論數。由於我只是添加了這些列,雖然有投票和評論,但是如何將這些其他模型連接到微博模型以填寫新列。任何建議都非常感謝!Rails:將模型連接到另一個模型

型號微柱

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_count和一個votes_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

我在mircopost表中的列comments_count,只是自動執行此列數的是具有微柱評論數?此外,對於投票,因爲我使用acts_as_voteable我假設有更多的它然後只是自動計數? – Kellogs 2012-03-03 19:04:32

+1

對於評論,它會自動爲你增加/減少comments_count。你總是可以調用'comments_count'來獲取你的微博的當前評論數。 對於acts_as_votable,看看這裏:https://github.com/ryanto/acts_as_votable在'緩存'下,你只需要添加一些列到數據庫中,因爲他們指定,它會按照你的意願去做。 – TheDelChop 2012-03-03 19:07:10

+0

mmm在添加此列之前,我已經有了一些註釋,是否有更新此方法並將其保存到此列的方法?同樣對於選票過程你會知道如何去做這件事? – Kellogs 2012-03-03 19:08:55

相關問題