【问题标题】:Combining data from two tables in rails在rails中组合来自两个表的数据
【发布时间】:2015-10-31 12:27:07
【问题描述】:

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

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 中的方法来做到这一点?还是有一种干净的方法可以做到这一点?

这是我用scope 构建到LittleClassLittleClassSession 模型中的东西吗?

【问题讨论】:

    标签: mysql ruby-on-rails database join


    【解决方案1】:

    当您查询 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 将包含小类会话的所有属性以及对应键下的小类的属性。

    【讨论】:

      猜你喜欢
      • 2014-07-27
      • 1970-01-01
      • 2013-04-26
      • 1970-01-01
      • 2017-08-16
      • 1970-01-01
      • 2016-08-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多