ActiveRecord:如何返回不同票数?

时间:2011-07-19 08:13:20

标签: sql ruby-on-rails ruby-on-rails-3

我的数据模型:用户,投票,物品

用户可以多次对某个项目进行投票

我想返回一个项目的上下投票总数,仅计算给定用户的最新投票数

我在考虑选择一个独特的user_id并按投票的价值进行分组,但我不确定如何让这个明确的选择最新的...

我更喜欢通过Rails 3 finder方法做到这一点..

1 个答案:

答案 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 根据投票模型中的特定订购需求制作它们,并在检索后对它们进行计数。