2017-03-06 2 views
0

オーダーメイドのオーダーIDではorder_idを使用しましたが、レールはエラーを返します。レールはメーラーのオーダーIDを見つけます

メーラ上でオブジェクト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 
+0

あなたが渡す 'order'がすでに' Order'(クラス)である場合、もう一度それを "見つける"という意味はありません。あなたが得たものに結果を割り当てるので、それは失われてしまいます。 'order = Order.find(order_id)'行を完全に省略してみてください。 – Patru

+0

Btw:あなたのメーラーのインスタンス変数を割り当てたいとは思わないでしょう。 'order'が' Order'だったとしても、 'buyer_id'は' FixNum'であり、 '#email'は全く理解できません。ユーザが 'order'から取り出される場合、' order.buyer'( 'id'なし)によって可能性があります。 – Patru

答えて

0

あなたは、パラメータとしてorderのインスタンスを渡しているが、あなたはorder_idを渡すか、そうでなければ、それを使用する前に、それを導出しようとしないでください。 MarsAtomicあなたはIDを送りたいあなたは "注文" と

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 

を全順序を渡して説明したように

たぶん、あなたは

order = Order.find(order.id) 
0

order = Order.find(order_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 

この行には、「注文」には既に注文記録が含まれています。 (私は私が何か他のものへの順序の名前を変更をお勧めします

def order_confirmation(order) 

:あなたはID(order.idを)したい場合は、buyer_id(order.buyer_idを)したい場合、あなたはORDER_ID(order.order_idを)したい場合"order_identification")。これは、オーダーをパラメーターとして渡し、内部で同じパラメーターを使用するとオーダーを上書きするためです。

関連する問題