我刚刚在我的数据库中为我的微博表创建了新列,这些列是vote_count
comment_count
,我想将它连接到投票模型vote_up计数和评论模型评论计数。由于我只是添加了这些列,尽管有投票和评论,我如何将这些其他模型连接到微博模型以填充新列。任何建议都非常感谢!
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
答案 0 :(得分:1)
看起来你要做的就是使用counter_cache
,这是rails支持的,但是你的列名是错误的。
您希望在数据库中添加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