0

投稿元のURLを読み取るようにActionMailerを設定しようとしています。このアプリケーションをデプロイすると、ドメイン名が異なる多くの異なるサーバーに配置される可能性があります。ユーザーにコードを入力してURLを静的に入力させる代わりに、パスワードのリセットURLに、それが生成されたドメイン(http://またはhttps://を含む)を含めたいと思います。

私はメーラー内で試しましたが、結果は出ていませ ん::Rails.root。未定義のメソッドエラーを生成します。request.host_with_port::Rails.root_pathrequest.host_with_port

  def reset_password_email(user)
    @user = user
    @url  = "#{::Rails.root_path}/password_resets/#{user.reset_password_token}/edit"
    mail(:to => user.email,
         :subject => "Your password has been reset")
  end
4

1 に答える 1

1

reset_password_email(user)アプリコントローラーの1つから電話をかけていると思います。

このメソッド定義を更新して、ユーザーと一緒に現在のホストとポートを送信できます。

def reset_password_email(user, request)
  @user = user
  @url  = "#{request.protocol}#{request.host_with_port}/password_resets/#{user.reset_password_token}/edit"
  mail(:to => user.email, :subject => "Your password has been reset")
end

コントローラのコードを更新することを忘れないでください。

于 2013-02-16T13:15:05.633 に答える