subdominios subdominio poner los funciona donde crear crean como ruby-on-rails

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.



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