取一个订单的数量和所属对象的价格,显示总数在Rails 6
Take quantity of an order and the price of the objetcs that belongs to, to show the total in Rails 6
我的对象 Tool
有一个 price
和一个 ToolsOrder
,每次销售都有一个 quantity
。我需要显示总销售额
Tool has many: tools_orders
ToolsOrders belongs_to: tool
我想像这样或类似的东西?我做不到
ToolsOrder.sum("quantity * Tool.price")
如何计算总金额?
有时阅读代码提供的错误消息很有用。假设您得到的错误是:missing FROM-clause entry for table "tool"
。这表示您正在从 table tool
查询 price
,但当前查询中没有这样的 table。
您缺少连接。
ToolsOrder.joins(:tool).sum("quantity * tools.price")
如果您愿意,可以使用 Arel 使它更安全。
ToolsOrder.joins(:tool).sum(ToolsOrder.arel_table[:quantity] * Tool.arel_table[:price])
现在没有纯 sql,很容易在(工具 vs 工具)中打错字,并且可以 sql 注入。
我的对象 Tool
有一个 price
和一个 ToolsOrder
,每次销售都有一个 quantity
。我需要显示总销售额
Tool has many: tools_orders
ToolsOrders belongs_to: tool
我想像这样或类似的东西?我做不到
ToolsOrder.sum("quantity * Tool.price")
如何计算总金额?
有时阅读代码提供的错误消息很有用。假设您得到的错误是:missing FROM-clause entry for table "tool"
。这表示您正在从 table tool
查询 price
,但当前查询中没有这样的 table。
您缺少连接。
ToolsOrder.joins(:tool).sum("quantity * tools.price")
如果您愿意,可以使用 Arel 使它更安全。
ToolsOrder.joins(:tool).sum(ToolsOrder.arel_table[:quantity] * Tool.arel_table[:price])
现在没有纯 sql,很容易在(工具 vs 工具)中打错字,并且可以 sql 注入。