2015-01-12 3 views
5

Wir entwickeln eine Konferenz-Management-App und die meisten Ressourcen sind verschachtelte Ressource der Konferenz. Jetzt haben wir uns dazu entschlossen, Subdomains für Konferenzhomepages zu verwenden und Probleme beim Refactoring von Ressourcen zu bekommen.Wie Ressource-ID von Sub-Domäne in Rails 4 erhalten?

Aktuelle URL-Schema ist wie:

/Konferenzen /: id/Reden

/Konferenzen /: id/verwalten

Wir wollen bewegen/Konferenzen /: id Teil Subdomain und Verwendung Ressourcen wie:

conferenceid.sitename.com/speeches

conferenceid.sitename.com/manage

Hier sind die aktuellen Routen-Datei: https://github.com/kodgemisi/confdeck/blob/development/config/routes.rb#L17

Was ist der beste Weg, um diesen Übergang zu machen? Wie können wir aktuelle URL-Helfer verhindern?

+0

Diese Frage migh t helfen Ihnen http://stackoverflow.com/questions/1300361/rails-routing-subdomain-to-a-resource – Mario

Antwort

1

Lassen Sie uns zuerst Ihre Subdomain-Klasse optimieren. Der folgende Code sollte

class Subdomain 
    def self.matches?(request) 
    request.subdomain.present? && request.subdomain != 'www' 
    end 
end 

dann sollten Sie in der Lage sein, es zu nennen in den Strecken mit den folgenden

constraints(Subdomain) do 
    resource :conference, path: "/" do 
     member do 
     get 'apply' 
     post 'apply' => "conferences#save_apply" 
     end 
    end 

Dann in dem Controller genug sein, Sie so gehen:

Conference.find_by_slugged!(request.subdomain) 

(ich sah Sie freundlich ID verwenden, so dass ich denke, Ihre Sub-Domain ist sluggged der Konferenz.