9

我有以下型号

楷模

Job
  belongs_to :company
Company
  has_many :jobs

现在,我使用以下方法选择所有Jobs 已接受的内容:Company

def self.with_accepted_company
  Job.all.reject {|job| job.company.state != "accepted" }
end

但我想为此使用范围并将其与其他范围一起使用。这是否可以在Job模型中编写该范围?

4

2 回答 2

20

我会做这样的事情(来自http://guides.rubyonrails.org/active_record_querying.html

class Job
  scope :accepted_with_active_company, ->() {
    joins(:company).where('companies.state' => "accepted") 
  }
end
于 2012-12-15T15:28:15.633 回答
0

这是 where 子句的另一种语法:

class Job
  scope :accepted_with_active_company, ->() {
    joins(:company).where(companies: { state: 'accepted' }) 
  }
end
于 2020-01-22T14:17:03.790 回答