ruby on rails - poner - ¿Cómo obtener el valor del subdominio de una url?
donde se crean los subdominios (8)
En caso de que esté trabajando con una cadena, y suponiendo que puede ser una verdadera URI, puede hacer esto para extraer el subdominio.
require ''uri''
uri = URI.parse(''http://test123.example.com'')
uri.host.split(''.'').first
=> "test123"
https://stackoverflow.com/a/13243810/3407381
¿Cómo puedo obtener el valor del subdominio en los rieles, hay una forma integrada de hacer esto?
p.ej
test123.example.com
Quiero la parte test123 de la url.
Para cualquiera que busque obtener los subdominios en localhost usando WEBrick:
Ponga config.action_dispatch.tld_length = 0
en config/environments/development.rb
y todo debería funcionar.
Enlace a SO publicar aquí: ¿Puedo hacer que Rails / WEBrick reconozca las entradas en / etc / hosts como subdominios (en lugar de dominios)?
Enlace a la publicación de Github: https://github.com/rails/rails/issues/12438
Puede utilizar el complemento SubdomainFu . Este complemento te da un método current_subdomain que devuelve el current_subdomain de tu aplicación.
También puedes echar un vistazo a este Railscast.
ACTUALIZAR
También puede usar request.subdomains
esto le dará una variedad de subdominios.
Rails 3.0 tiene esta capacidad incorporada, puede acceder al subdominio desde request.subdomain
.
También puede enrutar en función del subdominio:
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
Si está usando 2.3, necesitará usar un complemento como subdomain-fu .
Sencillo en su controlador solo haga lo siguiente
unless request.subdomains.any?
#No domains available redirect
redirect_to subdomain: ''www''
end
Un poco tarde para la fiesta, pero esto es lo que usé en versiones anteriores de rieles.
subdomain = rquest.subdomains.join(''.'')
Debe ser compatible con versiones anteriores en versiones más nuevas.
Utilice el siguiente método dentro de su controlador
request.subdomains
Esto devuelve una matriz de subdominios
account_location también es un buen complemento. Después de usarlo, puedes encontrar la cuenta basada en diferentes subdominios. Y puedes encontrar un subdominio de url simplemente escribiendo
request.subdomains(0).first
en su codigo