我有两个模型,一个属于另一个。它们看起来像这样:

class LittleClass < ActiveRecord::Base
  has_many :little_class_sessions
end


class LittleClassSession < ActiveRecord::Base
  belongs_to :little_class
end

LittleClassSession有一个名为little_class_id的列。我想得到所有的LittleClassSession,但也要将相关的LittleClass以相同的散列返回给我。
有没有内置在rails中的方法可以做到这一点?还是有一个干净的方法?
这是我用LittleClass构建的LittleClassSessionscope模型吗?

最佳答案

查询activerecord时,将得到activerecord:relation的数组。它是启动查询的特定实体。当然,您可以连接依赖表(如您的示例中的一对多关系)。但是你仍然需要通过这些依赖关系来构建你需要的任何对象。
这是我的意思的一个草图(假设我们搜索具有特定小类id的所有小类会话):

class_sessions = LittleClassSession.includes(:little_class).where(:little_classes => {:id => 1})

class_sessions.each do |relation|
   test_hash = relation.attributes.merge!({:little_class => relation.little_class.attributes});
   puts test_hash
end

test_hash将包含小类会话的所有属性以及相应密钥下的小类属性。

10-04 21:40