Como se indicó elektronaut, esto es probablemente algo que debería manejarse en la configuración de su proxy. Dicho esto, ActiveSupport :: UrlFor # url_for tiene información que puede ser útil. Eche un vistazo a http://github.com/rails/rails/blob/master/actionpack/lib/action_dispatch/routing/url_for.rb
Lo que creo que se reduce a pasar dos argumentos en sus llamadas url_for y/o link_to. En primer lugar es el argumento :port => 123
, el segundo es :only_path => false
para que genere el enlace completo que incluye dominio, puerto, etc.
Así que cuando se genera un enlace, se puede hacer:
link_to 'test', root_url(:port => 80, :only_path => false)
y al crear una costumbre url que podría hacer:
url_for :controller => 'test', :action => 'index', :port => 80, :only_path => false
Para una redirección:
redirect_to root_url(:port => 80, :only_path => false)
Espero que esto ayude, y si no lo hace, puede ser más específico acerca de cómo genera sus URL, qué raíles está generando para usted y qué le gustaría que genere.
Actualización: yo no era consciente de esto, pero parece que se puede establecer valores predeterminados para los carriles de la URL genera con url_for, que es utilizado por todo lo que genera enlaces y/o direcciones URL.Hay una buena escritura en torno a ella aquí: http://lucastej.blogspot.com/2008/01/ruby-on-rails-how-to-set-urlfor.html
O para resumir para usted:
Agregar a su application_controler.rb
def default_url_options(options)
{ :only_path => false, :port => 80 }
end
y esto:
helper_method :url_for
El el primer bloque establece los valores predeterminados en los controladores, el segundo hace que el url_for helper use el que se encuentra en los controladores, por lo que los valores predeterminados se aplican también a eso.
¿Qué se está ejecutando en el puerto 9000? el haproxy deamon o nginx, y ¿por qué usas haproxy y nginx? – jigfox
El daemon haproxy está en el puerto 80, y tengo instancias nginx ejecutándose en una variedad de puertos diferentes. – Garrett