您好我想制作简单的购物车.我是编程的初学者.所以请帮忙.我有价格的项目,我想总结它们(数量等于一).
教职员
<h1>Summ:<%= @items.total %></h1>
模型
class Item < ActiveRecord::Base
def total
summ = 0
@items.each do |item|
summ += item.price
end
end
end
Run Code Online (Sandbox Code Playgroud)
怎么了.我在Item#index中有这个错误NoMethodError
Rails定义了一个Enumerable::sum可以调用的方法.所以你的观点看起来像这样:
<h1>Summ: <%= @items.sum(&:price) %></h1>
Run Code Online (Sandbox Code Playgroud)
您还可以为total您Order(或您正在使用的任何模型has_many:items)添加方法.有点像:
class Order < ActiveRecord::Base
has_many :items
def total
items.sum(&:price)
end
end
Run Code Online (Sandbox Code Playgroud)
然后你的观点:
<h1><%= @order.total %></h1>
Run Code Online (Sandbox Code Playgroud)