在Rails的配置中是否有可以全局设置TLD长度为2(以co.uk为例),以便于request.domain和request.subdomain正确解析而无需传递选项?
也就是说,request.domain(2),默认情况下Rails似乎已经设置为1,并且更改此全局设置是有意义的,但是,在文档中没有找到这样的信息。
是否存在这样的配置选项?
在Rails的配置中是否有可以全局设置TLD长度为2(以co.uk为例),以便于request.domain和request.subdomain正确解析而无需传递选项?
也就是说,request.domain(2),默认情况下Rails似乎已经设置为1,并且更改此全局设置是有意义的,但是,在文档中没有找到这样的信息。
是否存在这样的配置选项?
在您的 config/environments/production.rb 文件中添加以下行:
config.action_dispatch.tld_length = 2
config.action_dispatch.tld_length设置应用程序的顶级域名(TLD)长度。默认值为1。
ActionDispatch::Http::URL.tld_length = 2
对于Rails 3.0.9及以下版本,没有这样的配置,因为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
来源:http://apidock.com/rails/v3.0.9/ActionDispatch/Http/URL/domain
该网址介绍了Rails中ActionDispatch::Http::URL模块的domain方法,可用于获取URL主机名(即域名)。