2014-03-03 121 views
0

我有这样的关系:轨道4找到包括

class Organization < ActiveRecord::Base 
    belongs_to :organization_type 
    has_many :organization_type_links 
end 


class OrganizationType < ActiveRecord::Base 
    has_many :organizations 
    has_many :organization_type_links 
end 


class OrganizationTypeLink < ActiveRecord::Base 
    belongs_to :organization 
    belongs_to :organization_type 
end 

,并在表的组织,我有场:organization_type_link_id 表organization_type_links:表organization_type_links organization_type_id

我怎么能选择所有组织,其中它的organization_type_id有一些价值?在Rails 3我知道浩做到这一点...在4

我尝试这样:

Organization.includes(:organization_type_links).where(organization_type_id: params[:id]) 

但这并不取什么,我想看看...

+2

你期望看到什么和实际结果是什么? – Agis

+0

@Agis结果为零,我期望看到Organization的结果,其中organization_type_link.organization_type_id = 1 – brabertaser19

+0

“Organization.where(organization_type_id:1)'返回什么? – Agis

回答

1

尝试joins代替:

Organization.joins(:organization_type_links).where(organization_type_links: { organization_type_id: params[:id] }) 
+0

Mysql2 ::错误:'where子句'中的未知列'organizational.organization_type_id':SELECT'organizations'。* FROM'organizations' INNER JOIN'organization_type_links' ON'organization_type_links'.'organization_id' ='organizations'.'id' WHERE'组织'.'organization_type_id' ='1'限制40 OFFSET 0 – brabertaser19

+0

尝试更新代码。 – BroiSatse