Ruby on rails 3 Rails 3有许多order by和group by未按预期工作

Ruby on rails 3 Rails 3有许多order by和group by未按预期工作,ruby-on-rails-3,activerecord,group-by,sql-order-by,Ruby On Rails 3,Activerecord,Group By,Sql Order By,我在我的组中有以下关联模型: has_many :subscriptions, :order => 'subscriptions.expiration_date DESC', :group => 'subscriptions.product_name', :conditions => ['subscriptions.status IN (?)', [:active, :canceled]] 模型(用户、订阅、组)如下所示: **User** has_many :groups,

我在我的
组中有以下关联
模型:

has_many :subscriptions, :order => 'subscriptions.expiration_date DESC', :group => 'subscriptions.product_name', :conditions => ['subscriptions.status IN (?)', [:active, :canceled]]
模型(用户、订阅、组)如下所示:

**User**
has_many :groups, :before_add => :validates_group, :through => :group_users, :conditions => ["groups_users.status = ?", 'active']
**Group**
has_many :users, :through => :group_users, :conditions => ['groups_users.status = ?', 'active']
has_many :subscriptions, :order => 'subscriptions.expiration_date DESC', :group => 'subscriptions.product_name', :conditions => ['subscriptions.status IN (?)', [:active, :canceled]]
**Subscription**
belongs_to :group
因此,一个组可以对同一产品有多个订阅(对于不同的产品;subscription.product\u name)(取决于他们是续订的还是系统中的旧订阅)。
有多个订阅
订购方工作不正常

例如:
如果用户有3个订阅(1个用于产品X,2个用于产品Y)。然后运行以下命令

用户模型中的订阅方法:

 def subscriptions
    subs = []
    groups.collect(&:subscriptions).each do |sub|
      if sub
        subs << sub
      end
    end
    subs.flatten!
  end

u = User.last
u.subscriptions
def订阅
subs=[]
组。收集(&:订阅)。每个do |子|
如果子
潜艇