如何在rails中获取子域值,是否有内置的方法来执行此操作?
例如
test123.example.com
Run Code Online (Sandbox Code Playgroud)
我想要url的test123部分.
Ada*_*sek 25
Rails 3.0内置了此功能,您可以从中访问子域request.subdomain
.
您还可以根据子域进行路由:
class SupportSubdomain
def self.matches?(request)
request.subdomain == "support"
end
end
Basecamp::Application.routes do
constraints(SupportSubdomain) do
match "/foo/bar", :to => "foo#bar"
end
end
Run Code Online (Sandbox Code Playgroud)
如果您使用的是2.3,则需要使用subdomain-fu等插件.
在控制器中使用以下方法
request.subdomains
Run Code Online (Sandbox Code Playgroud)
返回子域数组
account_location也是一个很好的插件.使用后,您可以根据不同的子域找到该帐户.你可以通过写作从url中找到子域名
request.subdomains(0).first
Run Code Online (Sandbox Code Playgroud) 在你的代码中.
如果您正在处理一个字符串,并假设它可以是一个真正的 URI,您可以执行此操作来提取子域。
require 'uri'
uri = URI.parse('http://test123.example.com')
uri.host.split('.').first
=> "test123"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
23114 次 |
最近记录: |