3

メーラーによってレンダリングされたビュー内の画像の完全なURLを取得しようとしています。

Rails 3+で、Sprocketsによって生成された完全なURLを取得する適切な方法はありますか?

リクエストオブジェクトのハッキングについては知っていますが、メーラーはrakeタスク内で呼び出されるため、リクエストデータは明らかに利用できません。

Rails 4 beta1(エッジ)を実行しています

4

1 に答える 1

4

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) %>
于 2013-03-31T07:43:04.947 に答える