Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to write scope with belongs_to object?

I have the following models

Models

Job
  belongs_to :company
Company
  has_many :jobs

Right now I select all the Jobs which have an accepted Company using the following method:

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

But I would like to use scope for that and use it with other scopes. Is this possible to write that scope in the Job model?

like image 524
tomekfranek Avatar asked Dec 15 '12 15:12

tomekfranek


1 Answers

I would do something like this (from http://guides.rubyonrails.org/active_record_querying.html)

class Job
  scope :accepted_with_active_company, ->() {
    joins(:company).where('companies.state' => "accepted") 
  }
end
like image 111
shadysayed Avatar answered Oct 25 '22 16:10

shadysayed