Согласно этой статье :
Назначение локального IPv4-адреса канала на интерфейсе основывается исключительно на состоянии интерфейса и не зависит от каких-либо другие протоколы, такие как DHCP. Хост НЕ ДОЛЖЕН изменять свое поведение и использовать другие протоколы, такие как DHCP, потому что хост назначил интерфейсу локальный IPv4-адрес для интерфейса.
blockquote>Поэтому мы не можем изменить его поведение, когда оно включено.
LinkLocalDelayed
успешно, потому что исходный статус былLinkLocalDelayed
.Для IPv6 я нашел ответ на msdn . Похоже, у них похожее поведение. Если один из них включен, он не сможет быть отключен.
default_url_options
доступно из config.action_mailer
и должно быть задано в файле конфигурации вашей среды.
Например, в config / environment / production.rb
:
config.action_mailer.default_url_options = {
:host => 'www.yourdomain.com'
}
Для локального тестирования измените config / environment / development.rb
:
config.action_mailer.default_url_options = {
:host => '127.0.0.1',
:port => 3000
}
Затем, если у вас есть именованный маршрут с именем Forgot_password_login
, вы может сгенерировать URL-адрес ссылки для входа в вашу почтовую программу, используя что-то вроде этого:
forgot_password_login_url(:token => 'a7s8q15sk2...')
Можете ли вы просто сделать
<%="click here", :controller => foo, :action => 'bar', :token => token, :host=>request.host -%>
Есть еще одна альтернатива, как описано в http://pivotallabs.com/how-i-leaned-to-stop-hating-and-love-action- mailer /
Преимущество этого решения в том, что оно не требует какой-либо настройки (поэтому меньше хлопот) и отлично работает до тех пор, пока вы отправляете электронные письма из контроллеров.
Но если вы планируете отправлять электронную почту без прохождения через контроллер (например, из командной строки или в ответ на другое электронное письмо), вам потребуется статическая конфигурация.