Rails 3 - 处理来自几个表的数据

Posted

技术标签:

【中文标题】Rails 3 - 处理来自几个表的数据【英文标题】:Rails 3 - work with data from few tables 【发布时间】:2011-06-11 19:19:08 【问题描述】:

我正在解决一个问题,如何在一个表中适当地打印第二个表中的项目。

在“TabA”中,我有 id: 1 2 3 4

在“TabB”中,我有 tab_a_id: 2 3 3 3 3 3 4

具体来说,我的情况是这样的:

as_controller

@info_a = TabA.all(:joins => :bs, :conditions => ["city = ?", 0])

查看

  <% for info in @a %>
    <tr>
      <td><%= info.id %></td>
      <td><%= info.email %></td>
      <td><%= HERE I WOULD LIKE TO PRINT COUNT ITEMS FROM TabB ('bs' controller, 'b' model) %></td>
    </tr>
  <% end %>

我正在尝试找到如何打印,例如对于“TabA”中 ID 号为 3 的项目,“TabB”中的行数(在 TabB 中是值 3 的 5 倍)。

提前致谢!

编辑:解决方案 - info.tabb.size

【问题讨论】:

【参考方案1】:

为什么不在 A 和 B 模型之间建立关联?这样,您可以这样做:a.b.count

您的方法的问题是您从数据库中请求所有行,Rails 用 AR 对象包装它们,将它们放入数组中,然后计算它的大小。另一方面,count 告诉数据库计算结果并仅返回一个数字,因此速度要快得多。

【讨论】:

以上是关于Rails 3 - 处理来自几个表的数据的主要内容,如果未能解决你的问题,请参考以下文章

根据角色类型来自 3 个表的分层数据

来自 2 个表的数据未显示在同一页面上

在 MSSM 中使用标量值函数和来自 2 个表的数据

SQL:SELECT MAX(Date) 涉及几个表

Java - 合并来自不同数据源中的 2 个表的数据

Postgresql - 带有 x 个表的转储数据库 - 仅模式,但来自一个表的数据