Ruby on rails RoR 3.1-使用where短语查询子对象时加载关联对象

Ruby on rails RoR 3.1-使用where短语查询子对象时加载关联对象,ruby-on-rails,ruby-on-rails-3,activerecord,Ruby On Rails,Ruby On Rails 3,Activerecord,我有以下结构 class List < ActiveRecord::Base has_many :global_lists end class GlobalList < ActiveRecord::Base set_table_name :globals_lists belongs_to :list end 使用where返回对象时,如何访问列表 thx 编辑:有没有办法让我把它展平,然后得到所有有这个的列表?我想我可以反复阅读,但感觉可能有一些语法我不知

我有以下结构

class List < ActiveRecord::Base
    has_many :global_lists
end

class GlobalList < ActiveRecord::Base
    set_table_name :globals_lists
    belongs_to :list
end
使用where返回对象时,如何访问列表

thx

编辑:有没有办法让我把它展平,然后得到所有有这个的列表?我想我可以反复阅读,但感觉可能有一些语法我不知道

这行:

gm = GlobalList.where(:global_id => 23).includes(:list)
返回模型的集合。您需要先获得列表

gm.first.list

问题是
GlobalList.find
返回单个GlobalList对象,而使用
where
的查询返回一个对象(表示一整套对象)。你想要:

gm = GlobalList.where(:global_id => 23).includes(:list).first
gm = GlobalList.where(:global_id => 23).includes(:list).first
GlobalList.find_by_global_id(23).list