在haml模板

时间:2016-05-13 11:08:32

标签: ruby-on-rails activerecord haml

我想知道是否有一种方法可以使用我的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

1 个答案:

答案 0 :(得分:1)

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

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

实际上并不知道您的架构和模型是如何设计的,因此select可能需要在查询的早期链接。但是,您当然可以将其插入HAML。

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