Rails 3 - 处理来自少数表的数据

时间:2011-06-11 19:19:09

标签: database ruby-on-rails-3 join view controller

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

在'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 个答案:

答案 0 :(得分:1)

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

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