在 haml 模板中计数不同

count distinct within haml template

我想知道是否有一种方法可以使用我的 haml 模板来计算 distinct,我尝试使用 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

您需要在查询 select 调用中指定 DISTINCT COUNT。你可以这样使用它:

supplier.variants.product.select("DISTINCT COUNT(*) AS COUNT")

不太了解您的模式和模型是如何设计的,因此 select 可能需要更早地链接到查询中。但是,您当然可以将其插入到您的 HAML 中。

正如 Max 已经指出的那样,如果可能,请避免在您的视图中进行查询。如果不可能,请重新考虑您的设计,因为它可能会迫使您走上一条糟糕的道路。