Rails helper - 未定义的方法`数量`

时间:2013-02-19 13:41:52

标签: ruby-on-rails ruby-on-rails-3

我正在尝试设置一个帮助程序,以计算出客户购买后剩余的库存量。客户有一些line_items,而产品有一些库存。所以我有效地尝试了以下方法。

方法1

helper.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>

使用stockquantity

计算剩余库存的最佳方式是什么?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

使用self而不是product。