2009-07-28 2 views
0

Я отправляю электронное письмо, содержащее ссылку на мой сайт. Я хочу иметь возможность тестировать его локально и легко переносить сценарии на разные хосты.localhost on rails

В моей электронной почте прямо сейчас я использую следующее:

<%= url_for(:host => 'localhost:3000', :controller => "user_activations", :action => "show", :id=>@id, :confirm=>@passcode) %> 

Это работает при тестировании на месте, но, очевидно, не в состоянии для производства. Есть ли простой способ, чтобы рельсы (или рубины) определяли, что такое текущий хост? Я думаю что-то вроде $ _SERVER php.

Я понимаю, что могу использовать некоторую логику, используя переменную окружения, но я хотел бы избежать этого.

Благодаря

ответ

1

в средах/development.rb

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

в средах/production.rb

config.action_mailer.default_url_options = { :host => "www.xyu.at" } 

и использовать тесты с RSpec-почте :)

+0

просто отметим, что простой способ сделать это - использовать файл конфигурации yaml, а затем просто пользователь default_url_o ptions = yml [ENV] – Ori

2

Я определяю постоянный 'HOST' в моем environment.rb, который устанавливает мой хозяин. В качестве альтернативы вы можете использовать request.host или request.domain.

+0

Put HOST = "локальный: 3000" ваши среды/development.rb и живые в средах/production.rb, т.е. HOST = «www.myhost.com» –