Я использую ActionMailer, чтобы отправить знаку электронное письмо с подтверждением. Электронная почта должна содержать ссылку назад на сайт для проверки пользователя, но я не могу убедить направляющие генерировать полный URL (включая домен и т.д.).
Я использую:
<%= url_for :controller => 'login', :action => 'verify', :guid => @user.new_user.guid, :only_path => false, :host => 'http://plantality.com' %>
по моему мнению,
В разработке режим Rails хватает, если я не определяю хост explicilty в ссылке выше. Но я не хочу делать это в производстве. Какие-либо решения?
Чтобы решить проблему с передачей хоста для генерации URL-адресов в ActionMailer, ознакомьтесь с этим плагином и причиной, по которой я написал это .
Чтобы решить первую проблему, используйте по возможности именованные маршруты. Вместо
<%= url_for :controller => 'login', :action => 'verify', :guid => @user.new_user.guid, :only_path => false, :host => 'http://plantality.com' %>
, предполагая, что маршрут называется login
, используйте
<%= login_url(:guid => @user.new_user.guid) %>
Обратите внимание, я использую login_url
, а не login_path
.
Я не уверен, что вы хотите, но в config / environment / development.rb вы можете указать значение по умолчанию параметры для URL-адресов почтовой программы
config.action_mailer.default_url_options = {
:host => "your.host.org",
:port => 3000
}
, вы можете сделать то же самое в config / environment / production.rb