我的数据模型:用户,投票,物品
用户可以多次对某个项目进行投票
我想返回一个项目的上下投票总数,仅计算给定用户的最新投票数
我在考虑选择一个独特的user_id并按投票的价值进行分组,但我不确定如何让这个明确的选择最新的...
我更喜欢通过Rails 3 finder方法做到这一点..
答案 0 :(得分:1)
Soution 1。
在项目模型中混合使用counter_cache怎么样
has_many :up_votes, :class_name => "Vote", :conditions => {:condition_for_upvote => true}, :dependent => :destroy
has_many :down_votes, :class_name => "Vote", :conditions => {:condition_for_upvote => false}, :dependent => :destroy
您可以按created_at
订购上下投票。
Soution 2。
您还可以使用 scopes 根据投票模型中的特定订购需求制作它们,并在检索后对它们进行计数。