私はこのモデルを持っています:
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`"
これは本当に頭をかいてしまいます。必要に応じて、 MetaWheregemを使用しています。
更新:これをMetaWhereバグに分離しました。バニラActiveRecordでは発生しません。