0

我正在尝试设置一个助手来计算客户购买后剩余的库存量。客户有一些 line_items,产品有一些库存。如此有效地,我尝试执行以下操作。

方法一

助手.rb

module ProductsHelper

  def wtf_stock(product)
    product.stock - product.line_items.quantity.sum
  end
end

index.html.erb

    <%= wtf_stock(product) %>

这导致以下结果:undefined method quantity' for #<ActiveRecord::Relation:0x5380cc8>

或者注释掉助手ProductsHelper<%= wtf_stock(product) %>添加

替代方法

def wtf_stock
    product.stock - product.line_items.quantity
  end

然后我product.rb试图通过做<%= product.wtf_stock %>. 然后得到以下错误undefined local variable or method product' for #<Product:0x59fbc50>

使用我的stock和计算剩余库存的最佳方法是什么quantity

4

2 回答 2

1

在你的助手中试试这个:

def wtf_stock(product)
  product.stock - product.line_items.sum(:quantity)
end

称呼:

wtf_stock(product)

或者对于 product.rb (哪个更好):

def wtf_stock
  stock - line_items.sum(:quantity)
end

称呼:

product.wtf_stock
于 2013-02-19T13:46:00.493 回答
0
def wtf_stock
    self.stock - self.line_items.quantity
end

使用自我而不是产品。

于 2013-02-19T13:45:53.347 回答