2013-10-19 41 views
0

我有一个多态的关系设置如下:多态关系 - 检索所有者

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是否提供了一个方便的方法来做到这一点,还是我必须自己写一些方法?

+0

所以你怎么走到这一步? – phoet

+0

结束了在行业模型中使用这个: def申请人 Applicant.where('id in(?)',UserIndustry.where(:industriable_type =>'Applicant',:industry_id => self.id).pluck (:id)) end 不知道它是最优雅的,但它的工作原理。 – opticon

回答

0

从评论说,你写的我认为,你想要写一个join查询像这样(未经):

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