【发布时间】:2017-01-04 16:25:34
【问题描述】:
我正在我的应用中构建一个功能来创建采购订单。我有经典表 purchase_orders 和 purchase_order_lists。
purchase_order 有很多 purchase_order_lists 和 purchase_order_lists 属于_to purchase_order。外键在purchase_orders 表的PURCHASE_ORDER 列上。数据库表名大写。
在我的purchase_orders 控制器中,我有:
def show
@purchase_order = PurchaseOrder.find(params[:ID])
@purchase_order_list = PurchaseOrderList.find(params[:ID])
end
在我的模型 purchase_oder_list.rb 中
def total
(self.UNITS * self.PRICEBUY)
end
在我看来purchase_orders/show
<td><%= purchase_order_list.total %></td>
为每个采购订单列表行返回正确的值。
然后在同一个视图中显示总计:
@purchase_order_list.to_a.sum(&:total)
它应该显示方法total 的总数,但它会引发错误
Couldn't find PurchaseOrderList with 'ID'=POID-00001
因为它正在采购订单列表 ID 中寻找采购订单 ID。
如何修复它以返回某个采购订单的方法 total 的总和?
【问题讨论】:
-
@purchase_order_list = PurchaseOrderList.find(params[:ID])在这里看起来毫无意义。如果我真的理解您的问题,只需将其从控制器中删除即可。 -
您好,感谢您的回答。我已经编辑了这个问题。我在控制器中添加了它,以便能够计算某个采购订单的 purchase_order_list 方法
total的总数
标签: ruby-on-rails