2011-08-16 12 views
8

¿Hay algún lugar en la configuración de Rails donde puedo establecer globalmente la longitud del TLD a 2 (co.uk como ejemplo) para que request.domain y request.subdomain puedan analizar correctamente sin tener que pasar opciones?Rails 3.x TLD length

Es decir, request.domain (2), por defecto Rails parece estar configurado en 1 por defecto y tiene sentido poder cambiar esto globalmente, sin embargo, no se ha podido encontrar nada en la documentación .

¿Existe tal opción de configuración?

Respuesta

2

para los carriles 3.0.9 y por debajo, no hay tal configuración, dado que la fuente de domain es:

# File actionpack/lib/action_dispatch/http/url.rb, line 78 
def domain(tld_length = 1) 
    return nil unless named_host?(host) 

    host.split('.').last(1 + tld_length).join('.') 
end 

Fuente: http://apidock.com/rails/v3.0.9/ActionDispatch/Http/URL/domain

+0

Gracias por confirmar –

8

En Rails 3.1 puede establecer:

ActionDispatch::Http::URL.tld_length = 2 
+0

Gracias Eso es realmente bueno saber para cuando me traslado a 3,1 para la producción. –

+2

Veo que hay una config.action_dispatch.tld_length que establece ActionDispatch :: Http :: URL.tld_length Examinaré 3.1 para ver si los ayudantes lo usan. –

10

En su archivo config/environments/production.rb agregue esta línea:

config.action_dispatch.tld_length = 2 

config.action_dispatch.tld_length establece la longitud de TLD (dominio de nivel superior) para la aplicación. El valor predeterminado es 1.

http://guides.rubyonrails.org/configuring.html