メーラーによってレンダリングされたビュー内の画像の完全なURLを取得しようとしています。
Rails 3+で、Sprocketsによって生成された完全なURLを取得する適切な方法はありますか?
リクエストオブジェクトのハッキングについては知っていますが、メーラーはrakeタスク内で呼び出されるため、リクエストデータは明らかに利用できません。
Rails 4 beta1(エッジ)を実行しています
メーラーによってレンダリングされたビュー内の画像の完全なURLを取得しようとしています。
Rails 3+で、Sprocketsによって生成された完全なURLを取得する適切な方法はありますか?
リクエストオブジェクトのハッキングについては知っていますが、メーラーはrakeタスク内で呼び出されるため、リクエストデータは明らかに利用できません。
Rails 4 beta1(エッジ)を実行しています
Rails 4では、production.rbに次のものが必要です。
config.action_controller.asset_host = 'yourdomain.com'
config.action_mailer.asset_host = 'http://yourdomain.com'
プロトコル(http)を使用するものと使用しないものを用意することは意図的です。Rails 4がベータ版をリリースする前は異なるかもしれませんが、action_controller.asset_hostにプロトコルがある場合は、のようなURLを取得しhttp://http://yourdomain.com
、action_mailer.asset_hostにプロトコルがない場合は、有効なURLとして認識されません。内部のRails正規表現に対して正しく検証されないためです。
次に、メーラーテンプレートで次を使用できます。
<%= image_url('mail/awesome.gif', only_path: false) %>