我有两个模型,一个属于另一个。它们看起来像这样:
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
构建的LittleClassSession
或scope
模型吗? 最佳答案
查询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将包含小类会话的所有属性以及相应密钥下的小类属性。