2012-12-22 46 views
1

我有以下Association;Ruby Active Record Association - 從子表中獲取列

class Package < ActiveRecord::Base 
    has_many : modules 
end 

class Module < ActiveRecord::Base 
    belongs_to : package 
end 

而我用它從連接中獲取記錄;

@recs = Package.includes(:modules).where('name' => 'abc-pkg').all 

但結果集@recs僅包含父表的(包)列。我怎樣才能得到孩子(模塊)表的列?

PS:使用PostgreSQL 9.1和寶石 'PG' 適配器

謝謝。

回答

2

這實際上是正確的。檢查時,您不會在@recs變量內看到孩子的列。 includes方法的要點是在迭代軟件包並請求package.modules時避免附加查詢。

+0

謝謝@JiříPospíšil。這是有用的; '@package = Package.where('name'=> @package_name).first' '@package.modules.each {| m |把m.name}'放進去 – mevdiven