2011-08-16 14 views
8

C'è qualche posto in cui nella configurazione di Rails dove posso impostare globalmente la lunghezza TLD a 2 (come un esempio), quindi request.domain e request.subdomain vengono analizzati correttamente senza dover passare le opzioni?Rails 3.x TLD lunghezza

Cioè, request.domain (2), per impostazione predefinita Rails sembra essere impostato su 1 per impostazione predefinita e ha senso poter essere modificato a livello globale, tuttavia, non è stato possibile trovare nulla nella documentazione .

Esiste una tale opzione di configurazione?

risposta

2

per Rails 3.0.9 e al di sotto, non esiste una configurazione dal momento che la fonte di domain è:

# 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 

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

+0

Grazie per la conferma –

8

In Rails 3.1 è possibile impostare:

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

Grazie che è veramente bene sapere per quando mi trasferisco in 3.1 per la produzione. –

+2

Vedo che c'è un config.action_dispatch.tld_length che imposta ActionDispatch :: Http :: URL.tld_length Vedrò 3.1 per vedere se gli helper lo usano. –

10

Nel file config/environments/production.rb aggiungere questa riga:

config.action_dispatch.tld_length = 2 

config.action_dispatch.tld_length imposta la lunghezza TLD (dominio di livello superiore) per l'applicazione. Il valore predefinito è 1.

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