Направляющие: генерируйте полный URL в представлении ActionMailer

Я использую ActionMailer, чтобы отправить знаку электронное письмо с подтверждением. Электронная почта должна содержать ссылку назад на сайт для проверки пользователя, но я не могу убедить направляющие генерировать полный URL (включая домен и т.д.).

Я использую:

<%= url_for :controller => 'login', :action => 'verify', :guid => @user.new_user.guid, :only_path => false, :host => 'http://plantality.com' %>

по моему мнению,

Часть b:

В разработке режим Rails хватает, если я не определяю хост explicilty в ссылке выше. Но я не хочу делать это в производстве. Какие-либо решения?

16
задан Mike Sutton 13 February 2010 в 11:49
поделиться

2 ответа

Чтобы решить проблему с передачей хоста для генерации 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 .

17
ответ дан 30 November 2019 в 17:04
поделиться

Я не уверен, что вы хотите, но в config / environment / development.rb вы можете указать значение по умолчанию параметры для URL-адресов почтовой программы

config.action_mailer.default_url_options = {
  :host => "your.host.org",
  :port => 3000
}

, вы можете сделать то же самое в config / environment / production.rb

12
ответ дан 30 November 2019 в 17:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: