4

Devise confirm_url は、次のようなドメインのない相対 URL のみを生成しています。

http://users/confirmation?confirmation_token=...

変えてみた

confirmation_url(@resources, :confirmation_token => @resource.confirmation_token)

confirmation_url(:confirmation_token => @resource.confirmation_token)

しかし、それは同じURLを生成します。2.2.3 にアップグレードしましたが、結果は同じです。レール 3.1.4

更新: production.rb に設定しました:

  config.action_mailer.default_url_options = { :host => 'mysubdomain.mysite.com' } 

そして設定してみました

    before_filter set_actionmailer_host

    def set_actionmailer_host
      ActionMailer::Base.default_url_options[:host] = request.host_with_port
    end

アプリケーションコントローラーで役に立たない(https://github.com/plataformatec/devise/issues/1567

更新: これは、開発と本番の両方で発生します。

更新'http://mysite.com/' + confirmation_url(...Devise が app/views/ devise /mailer/confirmation_instructions.html.haml のテンプレートを使用していない理由がわかりません 手動でホストを追加できることを編集できた場合: '何の効果もありませんこれは災害です。ユーザーは登録を確認できません:(

4

1 に答える 1

8

デフォルトの URL ホストを環境設定ファイルに追加し忘れている可能性があります。コマンドを実行すると、rails g devise:install通常、これらの指示が表示されます。

# config/environments/development.rb

# Default actiomailer url host (required by devise) 
config.action_mailer.default_url_options = { host: 'myapp.dev' }

この設定は、すべての環境で必要です。

# config/environments/production.rb

# Default actiomailer url host (required by devise) 
config.action_mailer.default_url_options = { host: 'myproductionapp.com' }
于 2013-03-18T11:43:10.700 に答える