Search code examples
ruby-on-railsdnssubdomaintld

Rails 3.x TLD length


Is there some where in Rails's configuration where I can globally set the TLD length to 2 (co.uk as an example) so request.domain and request.subdomain parse correctly without having to pass options?

That is, request.domain(2), by default Rails seems to be set to 1 by default and it makes sense to be able to change this globally, however, haven't been able to find anything in the documentation.

Does such a configuration option exist?


Solution

  • For Rails 3.0.9 and below, there's no such configuration since the source of domain is:

    # 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
    

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