我有两种模型:销售和付款
class Sale < ActiveRecord::Base
has_one :payment
end
class SaleCancelation < ActiveRecord::Base
belongs_to :payment
end
我想创建两个范围,“有偿”和“无偿”。
“with_payment”很容易工作:
class Sale < ActiveRecord::Base
scope :with_payment, joins( :payment )
end
但是我怎样才能创建一个范围来找到每一个做 的销售?不是 有相关的付款吗?
最佳答案
怎么样:
scope :without_payment, where( 'id not in (select sales_id from payments)' )
关于ruby-on-rails - rails 3 : Scope on an optional has_one association,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6791120/