3

私のデバイスの使用法のためにこれを設定する必要があります。
しかし、私のアプリでは、ユーザーは2つのドメインを介してアクセスできます。
ユーザーがアクセスしているドメインで'config.action_mailer.default_url_options= {:host=>'を設定したいと思います。

これどうやってするの?

4

1 に答える 1

1

送信する電子メールの URL が現在のホストまたはドメインを使用して構築されることを達成したい場合、default_url_options アプローチは機能しません。これは、アプリケーションの起動時に一度だけ設定されるためです。リクエスト オブジェクトはそのコンテキストでは使用できません。 AFAIKですが、コントローラーアクションのみです。

次のようなデフォルトのホストを使用せずに、メーラー クラスでメールに URL を生成してみることができます (テストされていません)。

class Mailer < ActionMailer::Base

  def welcome(user, host)
    @url = url_for(host: host, controller: ..., action: ...) 
    # construct rest of email here 
  end

end

次に、リクエストから適切なホストを使用してコントローラーから呼び出します。

Mailer.welcome(current_user, request.host).deliver
于 2012-07-14T19:54:51.287 に答える