Определите хост по умолчанию в вашей конфигурации среды:
# config/environments/staging.rb
MyApp::Application.configure do
# ...
Rails.application.routes.default_url_options[:host] = 'preview.mydomain.com'
# ...
end
Затем вы можете создать URL в любом месте вашего приложения:
Rails.application.routes.url_helpers.widgets_url()
Или включите в свой класс помощников по URL:
class MyLib
include Rails.application.routes.url_helpers
def make_a_url
widgets_url
end
end
Если вы не определите хост по умолчанию, вам нужно будет передать его в качестве опции:
widgets_url host: (Rails.env.staging? ? 'preview.mydomain.com' : 'www.mydomain.com')
Также полезно указывать такие вещи, как протокол:
widgets_url protocol: 'https'