Ruby on rails 未定义的“产品价格”方法&x27;对于类OrderItems--(OrderItemsController#create)

Ruby on rails 未定义的“产品价格”方法&x27;对于类OrderItems--(OrderItemsController#create),ruby-on-rails,cart,Ruby On Rails,Cart,CreateOrderItems迁移 def更换 创建表格:订单项目不| t、 整数:产品标识 t、 整数:订单号 t、 十进制:单价 t、 整数:p_数量 t、 小数:总价 t、 时间戳 结束 结束 OrderItemsController def创建 @订单=当前订单 @订单项目=@order.order\u items.new(订单项目参数) @订单.保存 会话[:order\u id]=@order.id 结束 定义订单项目参数 参数要求(:订单项)。允许(:产品id,:采购数量) 结束

CreateOrderItems迁移
def更换
创建表格:订单项目不|
t、 整数:产品标识
t、 整数:订单号
t、 十进制:单价
t、 整数:p_数量
t、 小数:总价
t、 时间戳
结束
结束
OrderItemsController
def创建
@订单=当前订单
@订单项目=@order.order\u items.new(订单项目参数)
@订单.保存
会话[:order\u id]=@order.id
结束
定义订单项目参数
参数要求(:订单项)。允许(:产品id,:采购数量)
结束
OrderItem模型
属于:产品
def单价
如果坚持下去?
自身[:单价]
其他的
产品价格?
结束

结束
这只是一个简单的拼写错误。 在OrderItem模型的方法
unit\u price
中,您使用的是
Product.prouct\u price

相反,您应该使用
product.product\u price
。第一个错误是拼写错误,第二个错误是因为您正在使用
Product
而不是
Product
来将关联的产品用于OrderItem


此外,我无法理解您为什么在OrderItem表中保留
单价
总价
,因为您可以使用关联和简单数学动态评估或计算该值。因此,根据我的说法,没有必要为这些值制作柱

嗨@Akash Gupta我改变了你强调的错误,但错误仍然存在。我使用单价和总价的原因是,单价保存了添加到购物车的产品的价格以及多次添加的多个产品的总价,#总价=p#U数量*单价您可以将产品表的模式添加到问题中吗?添加,现在检查它还添加了完整的错误堆栈跟踪。否则,我们的答案只不过是猜测而已。@Wasi为了解释以db为单位的单价,您在OrderItem的模型中使用了一种方法
单价
,使用产品的产品价格找到其单价,然后将其与数量相乘得到总价,这就是为什么我要告诉你们,它只能在运行时通过计算来完成,而不是保存在数据库中。对于OrderItem,您只需要以db形式保存数量,而不需要项目价格或总价。是否可以显示
产品价格的定义?请将产品控制器与产品价格共享?方法.定义产品参数参数要求(:产品).许可(:产品名称,:关键特征,:产品价格,:颜色,:主要材料,:产品数量)结束