我正在尝试设置一个帮助程序,以计算出客户购买后剩余的库存量。客户有一些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>
使用stock
和quantity
答案 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。