2016-04-16 10 views
0

ActionMailerでメールを送信する方法を学習していて、OrderMailerPreviewクラスにパラメータを渡すことができません。私はorder_idをnew_orderメソッドに渡す必要があるので、適切な順序を調べることができます。コードは次のとおりです。RailsのMailerPreviewクラスにパラメータを渡すにはどうすればよいですか?

# Preview all emails at http://localhost:3000/rails/mailers/order_mailer 
class OrderMailerPreview < ActionMailer::Preview 

    # Preview this email at http://localhost:3000/rails/mailers/order_mailer/new_order 
    def new_order(order_id) 
    @order = Shoppe::Order.find(order_id) 
    OrderMailer.new_order(order) 
    end 

end 

このメソッドにはどのようにしてorder_idを取得できますか?

答えて

0

ActionMailer::Previewは、偽のデータまたはシードされたデータでプレビューをレンダリングするだけで、私が知る限り、パラメータの受け渡しをサポートしていません。むしろ単にクラス/メソッドに基づいてファイルを見つけるためにurlを使います。これは開発援助としての意図された使用に対応する。

メーラープレビューで動的データを使用する必要がある場合や、プレビューをエンドユーザーに表示する場合は、代わりにメーラー表示をレンダリングするコントローラーを作成する必要があります。

class OrderMailerPreviewController < ApplicationController 
    # GET /mailers_previews/orders/:id 
    def show 
    @order = Order.find(params[:id]) 
    render "mailers/order", layout: nil 
    end 
end 
+0

ありがとうございます。 – Mark

関連する問題