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 に答える