多态关系 - 检索所有者

时间:2013-10-19 16:01:35

标签: ruby-on-rails ruby activerecord

我的多态关系设置如下:

class Industry < ActiveRecord::Base
  attr_accessible :name
  has_many :user_industries
end

class UserIndustry < ActiveRecord::Base
  attr_accessible :industry_id, :industriable_id, :industriable_type
  belongs_to :industry
  belongs_to :industriable, polymorphic: true
end

class Applicant < ActiveRecord::Base  
  has_many :user_industries, as: :industriable   
end

class Employer < ActiveRecord::Base  
  has_many :user_industries, as: :industriable   
end

我有搜索功能,例如,我想取得所有拥有某个行业的申请人。 Rails是否提供了一种方便的方法,或者我是否必须自己编写一些方法?

1 个答案:

答案 0 :(得分:0)

从你写的评论我假设,你想写这样的join查询(未经测试):

Applicant.joins(:user_industries).where('user_industries.industry_id' => self.id).pluck('applicants.id')