4

Ruby on Rails 3.1.0 を使用しており、HTML 電子メール メッセージで URL を適切に生成したいと考えています。設定した環境ファイルで

config.action_mailer.default_url_options = { :host => 'my_site.org' }

メール ビュー ファイル ( .html.erb) に記載

<%= link_to @user.name, users_url(@user) %>

受信したメールを見に行くと、生成された URL はhttp://users/1もちろん正しくありません。では、メーラー テンプレートで正しい URL を生成してhttp://my_site.org/users/1、本文メッセージにリンクを含めるにはどうすればよいでしょうか?


私もdefault_url_options自分のmailer.rbファイルに設定しようとしました

class MyCustom::Mailer < ActionMailer::Base
  default_url_options[:host] = 'my_site.org'

  def test_sending
    ...
  end
end

しかし、うまくいきません。

4

3 に答える 3

9

users_path相対パス (/users/1) です。電子メールの場合、絶対パスが必要なので、代わりにhttp://myapp.com/users/1users_url(@user)を指定する を使用します。

于 2012-01-12T17:17:35.357 に答える
1

あなたの action_mailer 設定は正しいです。

ただし、link_to には _path ではなく _url を使用する必要があります。

<%= link_to @user.name, users_url(@user) %>
于 2012-01-12T17:18:24.573 に答える
0

config オプションを設定したことを確認します。絶対パスを使用していることを確認するには、次を使用します。

<%= link_to, "My Profile", users_url(:only_path => false, @user) %>

または、リンクで具体的にホストを設定します。

<%= link_to, "My Profile", users_url(:host => "example.com", @user) %>

ここで説明します:

ActionView ヘルパー

于 2012-01-12T17:26:36.090 に答える