为什么我的ORDER BY子句与此ActiveRecord范围重复?

时间:2011-04-19 01:01:29

标签: ruby-on-rails ruby-on-rails-3 activerecord sql-order-by default-scope

我有这个型号:

class Coupon < ActiveRecord::Base

  default_scope order(:created_at)
  scope :inactive, where(:active => false)

end

使用ORDER BY范围时,我看到inactive子句有些奇怪的重复:

> Coupon.scoped.to_sql
 => "SELECT `coupons`.* FROM `coupons` ORDER BY `coupons`.`created_at`" 
> Coupon.inactive.to_sql
 => "SELECT `coupons`.* FROM `coupons` WHERE (`coupons`.`active` = 0) ORDER BY `coupons`.`created_at`, `coupons`.`created_at`"

这个真让我挠头。如果相关,我正在使用MetaWhere gem。

更新:我已将此隔离为MetaWhere错误。香草ActiveRecord不会发生。

1 个答案:

答案 0 :(得分:0)

Bundler正在拉下meta_where 0.9.9.2。升级到~> 1.0可以解决问题。