2011-08-16 11 views
8

Có một số nơi trong cấu hình của Rails nơi tôi có thể đặt toàn bộ chiều dài TLD thành 2 (ví dụ như) để request.domain và request.subdomain phân tích cú pháp chính xác mà không phải chuyển tùy chọn?Đường ray 3.x Chiều dài TLD

Đó là, request.domain (2), theo mặc định Rails dường như được đặt thành 1 theo mặc định và có ý nghĩa để có thể thay đổi điều này trên toàn cầu, tuy nhiên, không thể tìm thấy bất kỳ điều gì trong tài liệu .

Tùy chọn cấu hình có tồn tại không?

Trả lời

2

Đối với Rails 3.0.9 và dưới, không có cấu hình như vậy kể từ khi nguồn domain là:

# 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 

Nguồn: http://apidock.com/rails/v3.0.9/ActionDispatch/Http/URL/domain

+0

Cảm ơn bạn đã xác nhận –

8

Trong Rails 3.1 bạn có thể đặt:

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

Nhờ đó là thực sự tốt để biết khi tôi chuyển sang 3.1 cho sản xuất. –

+2

Tôi thấy có một config.action_dispatch.tld_length đặt ActionDispatch :: Http :: URL.tld_length tôi sẽ xem xét 3.1 để xem người trợ giúp có sử dụng nó hay không. –

10

Trong tệp cấu hình/môi trường/production.rb của bạn, hãy thêm dòng này:

config.action_dispatch.tld_length = 2 

config.action_dispatch.tld_length đặt độ dài TLD (tên miền cấp cao nhất) cho ứng dụng. Mặc định là 1.

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