Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 通过关联查找模型_Ruby On Rails_Ruby On Rails 3_Activerecord_Associations - Fatal编程技术网

Ruby on rails 通过关联查找模型

Ruby on rails 通过关联查找模型,ruby-on-rails,ruby-on-rails-3,activerecord,associations,Ruby On Rails,Ruby On Rails 3,Activerecord,Associations,我目前有以下三种型号: class Vacancy < ActiveRecord::Base # Database Associations has_many :vacancy_occupations, :foreign_key => :vacancy_id has_many :occupations, :through => :vacancy_occupations belongs_to :country belongs_to :employer #

我目前有以下三种型号:

class Vacancy < ActiveRecord::Base
  # Database Associations
  has_many :vacancy_occupations, :foreign_key => :vacancy_id
  has_many :occupations, :through => :vacancy_occupations
  belongs_to :country
  belongs_to :employer

  # Database Validations
  validates_presence_of :name, :title, :description
end

class VacancyOccupation < ActiveRecord::Base
  belongs_to :vacancy, :foreign_key => :vacancy_id
  belongs_to :occupation, :foreign_key => :concept_id
end

class Occupation < Concept
end

class Concept < ActiveRecord::Base
  # Database Associations
  has_many :labels
  has_many :vacancy_occupations, :foreign_key => :concept_id
  has_many :cv_occupations, :foreign_key => :concept_id
  has_many :vacancies, :through => :vacancy_occupations
  has_many :cvs, :through => :cv_occupations

  # Database Validations
  validates_presence_of :uri
  validates_uniqueness_of :uri
end

但是我想知道是否有一个更干净的语法来完成这个任务?我一直在玩includes选项,并尝试从不同的模式作为出发点,但我似乎迷失了方向。

我不确定这是否是正确的语法,但如果你能找到所有职业的父母,你基本上会得到所有有职业的空缺的列表

Occupation.all.vacancies

你可以使用作用域来获得更清晰的语法

,这样我最终只会得到所有与职业相关的空缺,而我只想要与特定职业相关的空缺。职业=职业。查找(…)然后,职业。空缺
Occupation.all.vacancies