我正在解决一个问题,如何在第二张表中适当地打印一张表中的项目。
在'TabA'我有id: 1 2 3 4
在'TabB'中我有tab_a_id: 2 3 3 3 3 3 4
具体来说,我的情况看起来是这样的:
@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
答案 0 :(得分:1)
为什么不在A和B模型之间建立关联?这样,您就可以执行此操作:a.b.count
。
您的方法的问题是您从DB请求所有行,Rails用AR对象包装它们,将它们放入数组中,然后计算它的大小。另一方面,count
告诉DB计算结果并只返回一个数字,因此速度要快得多。