2010-05-11 10 views
19

En un modelo de Rails, deseo poder encontrar el host y el puerto. Por ejemplo, si estoy en un entorno de prueba, devolvería http://localhost:3000/ y, si estuviera en producción, devolvería algo así como http://my.application.com/?Cómo obtengo el host y el puerto en una aplicación de Rails

+0

duplicado: http: // stackoverflow. com/questions/42566/getting-the-hostname-or-ip-in-ruby-on-rails – ghoppe

+0

posible duplicado de [Cómo encontrar el puerto local se ejecuta una instancia de raíles ¿está encendido?] (http://stackoverflow.com/questions/1554267/how-to-find-the-local-port-a-rails-instance-is-running-on) para el puerto, http: // stackoverflow .com/questions/42566/getting-the-hostname-or-ip-in-ruby-on-rails para el host. –

Respuesta

6

Puede obtener esos valores en sus controladores (request.host , request.port, etc.).

Tendría que dárselo a sus modelos a través de parámetros, ya que el objeto de solicitud solo está disponible en los controladores.

17
"#{root_url}" 

que debe ser declarado en su routes.rb

+0

esto es lo que estaba buscando. request.host_with_port funcionaba para mí al principio, pero necesitaba el 'HTTP: //' principal. esto funciona como cualquier otro url/path helper. – Dudo

+0

Creo que la respuesta es mucho mejor que el resto .. No hay inspección de solicitud, simplemente método de ayudante de enrutador –

3

Puede utilizar esta

<%= request.protocol + request.host_with_port %> 
#=> https://example.com:3000 
<%= request.protocol + request.host %> 
#=> https://example.com 
Cuestiones relacionadas