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