0

嗨,我试图在布局中没有控制器的情况下对输出数据进行排序,我使用 devise、formtastic 和其他一些 gem 来制作登录和用户界面

问题是我有 3 个表 Products、Carted_products 和 Users,我想在视图中按 Product_id 显示 Carted_products,我已经通过表中的记录显示它们,但我希望它对它们进行排序示例:

我有 3 个不同的订单,其中 2 个具有相同的 product_id,它们各有:

  1. 数量
  2. Product_id
  3. 用户身份

我可以通过模型关联中的 carted_product.product 访问价格

这是我的视图代码:

%t 正文

     - if user_signed_in?
       - current_user.carted_products.each do |f|
         - @total = @total + f.carted_product_price(f.ammount, f.product.price)
         %tr
           %td.carted_name
             = f.product.name
           %td.carted_ammount
             = f.ammount
           %td.carted_price  
             $ 
             = f.carted_product_price(f.ammount, f.product.price)

carted_product_price 只接收产品的数量和价格并返回乘以的价格

所以它打印表中的所有行如果不同的记录形成相同的产品并不重要,我只想将它们加入到一个表行输出中

4

1 回答 1

0

我认为您想遍历产品,而不是购物车。就个人而言,我会将大部分逻辑转移到模型中。

class Product
  ...
  def carted_products_total_amount
    carted_products.inject(0) {|acc, amount| acc + amount }
  end

  def total
    carted_product_price(carted_products_total_amount, price)
  end
end

然后在视图中:

%tbody
   - current_user.products.each do |product|
     - @total = @total + product.total
     %tr
       %td.carted_name
         = product.name
       %td.carted_amount
         = product.carted_products_total_amount
       %td.carted_price  
         $ 
         = product.total

此外,“金额”的正确拼写只包含一个“m”字符。;)

于 2012-07-19T23:08:43.480 回答