2011-08-16 16 views
8

Czy jest gdzieś w konfiguracji Rails, gdzie mogę globalnie ustawić długość TLD na 2 (co.uk jako przykład), aby request.domain i request.subdomain parsować poprawnie bez konieczności przekazywania opcji?Railsy 3.x Długość TLD

To jest request.domain (2), domyślnie Railsy wydają się domyślnie ustawione na 1 i ma sens, aby móc to zmienić globalnie, jednak nie udało się znaleźć niczego w dokumentacji .

Czy istnieje taka opcja konfiguracji?

Odpowiedz

2

Dla Rails 3.0.9 i poniżej, nie ma takiej konfiguracji, ponieważ jest źródłem 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 

Źródło: http://apidock.com/rails/v3.0.9/ActionDispatch/Http/URL/domain

+0

Dziękujemy za potwierdzenie –

8

W Rails 3.1 można ustawić:

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

Thanks to naprawdę dobrze wiedzieć, na kiedy przenieść do 3,1 do produkcji. –

+2

Widzę, że istnieje plik config.action_dispatch.tld_length, który ustawia ActionDispatch :: Http :: URL.tld_length Spojrzę na 3.1, aby zobaczyć, czy pomocnicy go używają. –

10

W pliku config/environments/production.rb dodaj następującą linię:

config.action_dispatch.tld_length = 2 

config.action_dispatch.tld_length ustawia długość domeny TLD (najwyższego poziomu) dla aplikacji. Domyślnie 1.

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