我想知道是否有一种方法可以使用我的haml模板进行计算,我尝试使用group_by(&:product_id)但没有成功。下面的代码给了我一个计数,但不是唯一的
- @suppliers.each do |supplier|
%tr
%td.mdl-data-table__cell--non-numeric= link_to supplier.name, edit_admin_supplier_path(supplier)
%td.mdl-data-table__cell--non-numeric= supplier.variants.product.count
答案 0 :(得分:1)
您需要在查询select
调用中指定DISTINCT COUNT。您可以像这样使用它:
supplier.variants.product.select("DISTINCT COUNT(*) AS COUNT")
实际上并不知道您的架构和模型是如何设计的,因此select
可能需要在查询的早期链接。但是,您当然可以将其插入HAML。
正如Max已经指出的那样,如果可能,请避免在您的视图中进行查询。如果不可能,请重新考虑您的设计,因为它可能会迫使您走上糟糕的道路。