私のデバイスの使用法のためにこれを設定する必要があります。
しかし、私のアプリでは、ユーザーは2つのドメインを介してアクセスできます。
ユーザーがアクセスしているドメインで'config.action_mailer.default_url_options= {:host=>'を設定したいと思います。
これどうやってするの?
私のデバイスの使用法のためにこれを設定する必要があります。
しかし、私のアプリでは、ユーザーは2つのドメインを介してアクセスできます。
ユーザーがアクセスしているドメインで'config.action_mailer.default_url_options= {:host=>'を設定したいと思います。
これどうやってするの?
送信する電子メールの 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