Sto tentando di installare Sottodomini in Rails 3 per Ryan Bates screencast on subdomains. Comunque non sta funzionando per me. Ho la seguente configurazione:request.subdomain non viene impostato in Rails 3 durante l'instradamento condizionale
# routes.rb
constraints(Subdomain) do
get 'devices' => 'devices#all'
end
# lib/subdomain.rb
class Subdomain
def self.matches?(request)
# binding.pry
request.subdomain.present? && request.subdomain == "admin"
end
end
Caricamento l'url admin.localhost:3000/devices
dovrebbe percorso mi devices#all
, però io ottenere un errore di routing Routing Error No route matches [GET] "/devices"
Chiaramente il mio percorso non funziona.
a configurare una sessione di pry
di debug in cui il commento è al di sopra, e viene colpito, quindi il mio vincolo sta funzionando, ma ottengo il seguente output:
[1] pry(Subdomain)> request.subdomain
=> ""
[2] pry(Subdomain)> request.subdomains
=> []
[3] pry(Subdomain)> request.host
=> "admin.localhost"
Quindi rotaie non è in ripresa l'amministratore porzione dell'URL e inserendola nella variabile del sottodominio. Mentre potrei facilmente usare il valore host per filtrare i percorsi di amministrazione, vorrei mantenere le cose pulite e corrette.
Come mai le rotaie non impostano il valore del sottodominio?
Modifica
Sia jdoe e coreyward sono corretti con le loro risposte. Ciò che mi ha stancato era che stavo usando anche pow
e xip.io
per accedere al sito e ottenere lo stesso errore. Il che era strano perché http://admin.app_name.192.168.1.68.xip.io/devices
ha un tld> 1. Quello che stava accadendo era che il sottodominio per xip
era admin.app_name.192.168.1.68
, che fallisce anche data la logica delle partite e non si dirige.
> Come mai le rotaie non impostano il valore del sottodominio? Penso che sia ancora Rack a quel punto. –
@OscarDelBen non lo è.È ActionDispatch 'request.inspect # =>
+1 per ulteriori chiarimenti su Pow & Xip.io. :) – coreyward