Как указал elektronaut, это, вероятно, то, что должно быть обработано в конфигурации вашего прокси. Тем не менее, ActiveSupport :: UrlFor # url_for содержит некоторую информацию, которая может быть полезна. Взгляните на http://github.com/rails/rails/blob/master/actionpack/lib/action_dispatch/routing/url_for.rb
Я думаю, что все сводится к передаче двух аргументов в ваши вызовы url_for и / или link_to. Первый аргумент :port => 123
, второй :only_path => false
, чтобы он генерировал полную ссылку, включая домен, порт и т. Д.
Таким образом, при создании ссылки вы можете сделать:
link_to 'test', root_url(:port => 80, :only_path => false)
и при создании пользовательского URL вы можете сделать:
url_for :controller => 'test', :action => 'index', :port => 80, :only_path => false
Для перенаправления:
redirect_to root_url(:port => 80, :only_path => false)
Надеюсь, это поможет, а если нет, можете ли вы более конкретно рассказать о том, как вы генерируете свои URL, что генерирует rails для вас, и что вы хотели бы, чтобы он генерировал.
Обновление:
Я не знал об этом, но, кажется, вы можете установить значения по умолчанию для рельсов URL, генерируемых с помощью url_for, который используется всем остальным, что генерирует ссылки и / или URL. Здесь есть хорошая запись об этом: http://lucastej.blogspot.com/2008/01/ruby-on-rails-how-to-set-urlfor.html
Или подвести итог для вас:
Добавьте это к вашему application_controler.rb
def default_url_options(options)
{ :only_path => false, :port => 80 }
end
и это:
helper_method :url_for
Первый блок устанавливает значения по умолчанию в контроллерах, второй заставляет помощника url_for использовать тот, который найден в контроллерах, поэтому значения по умолчанию применяются и к нему.