我有以下型号
模型
Job
belongs_to :company
Company
has_many :jobs
现在,我使用以下方法选择所有已接受Jobs
的{{1}}:
Company
但是我想使用范围并将其与其他范围一起使用。是否可以在def self.with_accepted_company
Job.all.reject {|job| job.company.state != "accepted" }
end
模型中编写该范围?
答案 0 :(得分:19)
我会这样做(来自http://guides.rubyonrails.org/active_record_querying.html)
class Job
scope :accepted_with_active_company, ->() {
joins(:company).where('companies.state' => "accepted")
}
end
答案 1 :(得分:0)
这是where子句的另一种语法:
class Job
scope :accepted_with_active_company, ->() {
joins(:company).where(companies: { state: 'accepted' })
}
end