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