ruby-on-rails - rails 3 : Scope on an optional has_one association

标签 ruby-on-rails ruby-on-rails-3 scope arel

我有两种模型:销售和付款

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/

相关文章:

ruby-on-rails - 如何为删除工作人员设置 rake 任务,无论何时使用 gem

javascript - 上传开始时如何触发jquery ui对话框打开

ruby-on-rails - 使用curl使用摘要测试基本的HTTP身份验证

ruby-on-rails - rails 中的下拉列表

ruby-on-rails - 使用 Brew 安装 rbenv

ruby-on-rails - slug 更改时自动重写

ruby-on-rails - Rails 3 : "field-with-errors" wrapper changes the page appearance. 如何避免这种情况?

C++ 数组作为参数,编辑 : now includes variable scoping

javascript - 使用 jQuery.extend() 进行覆盖时如何包含对原始函数的引用

c++ - C++ 有 move 和删除语义吗?