2

私は設定のあるactionmailerを持っています:

config / initializers / setup_mail.rb

ActionMailer::Base.smtp_settings = {
  :address              => "smtp.gmail.com",
  :port                 => 587,
  :user_name            => "cool@gmail.com",
  :password             => "cool",
  :authentication       => "plain",
  :enable_starttls_auto => true
}

ActionMailer::Base.default_url_options[:host] = "https://pacific-ravine-3563.herokuapp.com/"

ユーザーが作成されたときにメールを配信します。ただし、送信されたメールを確認したところ、リンクが機能しません。メールのテンプレートは次のとおりです。

Dear <%= @user.name %>,

<p>
    Welcome to Pholder! Get started by finding and inviting <%= link_to "friends", users_url %> so that you can exclusively upload and view pictures with each other.
</p>

<p>
    <%= link_to "View profile", user_url(@user) %>
    <%= link_to "Edit profile", edit_user_url(@user) %>
</p>

<p>
    Sincerely, <br>
    Pholder Staff
</p>

実際のメールをチェックしたとき:

Dear Ellen,

Welcome to Pholder! Get started by finding and inviting friends so that you can exclusively upload and view pictures with each other.

View profile Edit profile

Sincerely,
Pholder Staff 

どのリンクも機能しません。に私を送ることになっていた最初のリンクは、代わりに私をにusers_url送りますhttps//pacific-ravine-3563.herokuapp.com/users。これは他の2つのリンクにも当てはまります(にuser_url(@user)私を送るhttps//pacific-ravine-3563.herokuapp.com/users/9など)

default_urlを間違って設定しているからですか?

4

1 に答える 1

1

次のように構成を使用してみてください。

config.action_mailer.default_url_options = { :protocol => 'https', :host => 'pacific-ravine-3563.herokuapp.com' }

あなたが現在している方法を設定する代わりに。

絶対URLが生成されない場合は、を設定する必要がありますが、これは、ドキュメントのasを:only_path => false使用したときに発生する動作にすぎません。url_for

于 2012-11-08T20:33:33.323 に答える