Rails在邮件程序中找到订单ID

时间:2017-03-06 03:01:07

标签: ruby-on-rails ruby ruby-on-rails-3

在订单邮件程序中查找订单ID我使用了order_id,但rails返回错误,如果我使用params相同。

在邮件程序中找到对象ID的方法是什么?

def order_confirmation(order)
    order = Order.find(order_id)
    @user = order.buyer_id
    mail(to: @user.email, subject: 'Confirmação da Compra', &:html)
  end

2 个答案:

答案 0 :(得分:0)

您传递了order个参数作为参数,但在使用之前,您没有通过order_id或尝试导出它。

也许你应该尝试替换

order = Order.find(order_id)

order = Order.find(order.id)

答案 1 :(得分:0)

正如MarsAtomic所说,你正在通过“订单”传递整个订单

def order_confirmation(order)  # order contains the order itself 
    order = Order.find(order_id) #order_id is not specified
    @user = order.buyer_id
    mail(to: @user.email, subject: 'Confirmação da Compra', &:html)
end

您想要发送您可以完成的订单的ID,如下所示:

def order_confirmation(order)
    order_identification = order.order_id   # now order contains the ID number of the order
    @user = order.buyer_id
    mail(to: @user.email, subject: 'Confirmação da Compra', &:html)
  end

在此行中,“订单”已包含订单记录。如果你想要id(order.id),如果你想要buyer_id(order.buyer_id),如果你想要order_id(order.order_id):

def order_confirmation(order)

我建议将订单重命名为其他东西(我做了“order_identification”),因为您将订单作为参数传递,并且在里面使用相同的参数会覆盖它。