5
我想提出一些疑問,就像這樣:查詢通過協會 - 的Rails 3
employees = Employee.where(:group.name => 'admin')
employees = Employee.where(:company.address.city => 'Porto Alegre')
我的意思是,我需要訪問是通過關聯的另一示範田。
在此先感謝
我想提出一些疑問,就像這樣:查詢通過協會 - 的Rails 3
employees = Employee.where(:group.name => 'admin')
employees = Employee.where(:company.address.city => 'Porto Alegre')
我的意思是,我需要訪問是通過關聯的另一示範田。
在此先感謝
假設一個公司可以有多個地址(這我假設,因爲你company.address.city命名空間的,因爲它使一個有趣的查詢示例):
class Group < ActiveRecord::Base
has_many :employees
end
class Employee < ActiveRecord::Base
belongs_to :group
belongs_to :company
end
class Company < ActiveRecord::Base
has_many :employees
has_many :addresses
end
class Address < ActiveRecord::Base
belongs_to :company
end
你要找的查詢將如下所示:
Employee.
joins(:group).
where(:groups => { :name => 'admin' })
Employee.
joins(:company => :addresses).
where(:addresses => { :city => 'Porto Alegre' })
注意,在該協會的複數形式上面的where子句中總是使用。 where子句中的鍵指的是表名,而不是關聯名。