我有两个计算值小计和运费,第三个总计,这是前两个的总和。我想在视图中显示它们中的所有三个。我怎样才能做到这一点。我现在正在做的事似乎并不好。
Subtotal: <%= @cart.subtotal %>
Shipment: <%= @cart.shipment_charges %>
Total: <%= @cart.subtotal + @cart.shipment_charges %>
最后一个是再次调用方法来获得最终总数。这是什么最好的做法?
同样在视图中存储这样的结果也看起来很糟糕
<%- subtotal = @cart.subtotal %>
<%- shipment_charges = @cart.shipment_charges %>
...
Total: <%= subtotal + shipment_charges %>
请帮忙
答案 0 :(得分:3)
由于您正在处理发票,是否要保存这些值?
如果没有,您应该使用虚拟属性:
class Invoice < ActiveRecord::Base
def total
subtotal + shipment_charges
end
end
检查this link以获取详细示例。
答案 1 :(得分:0)
答案 2 :(得分:0)
我不相信你所做的是不好的做法。通常,您应该尝试将业务逻辑排除在视图之外,但您在此处所做的只是简单地呈现数据。
除非您打算将Total
发送回数据库,否则这不是什么大问题。
如果您在其他地方使用小计,shipment_charges和total,则可以将它们声明为模型上的计算字段。
e.g。
Class Cart ...
def total_cost
self.subtotal + self.shipment_charges
end
end
这样你就可以在你的视图中调用@ cart.total_cost