在 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 已经指出的那样,如果可能,请避免在您的视图中进行查询。如果不可能,请重新考虑您的设计,因为它可能会迫使您走上一条糟糕的道路。
我想知道是否有一种方法可以使用我的 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 已经指出的那样,如果可能,请避免在您的视图中进行查询。如果不可能,请重新考虑您的设计,因为它可能会迫使您走上一条糟糕的道路。