Ist es möglich, eine Subdomain einer Ressource zuzuordnen? Ich habe ein Firmenmodell. Derzeit verwendet meine Routing-Datei unter Verwendung von subdomain_fu:
%Vor%Mein Firmenmodell enthält eine "Subdomain" -Spalte.
Während dies wie vorgesehen funktioniert, ist es eine benannte Route und ist nicht erholsam. Im Wesentlichen muss ich "name.domain.com" der show-Aktion für den Unternehmenscontroller zuordnen. Ist eine benannte Route der richtige Weg oder kann ich eine Ressourcenroute verwenden?
Ich kenne keine Möglichkeit, dies mit map.resources
zu tun. Es akzeptiert eine Option :conditions
, aber ich bin mir nicht sicher, wie Sie den /companies/
-Anteil der URL entfernen können. % Co_de% ist jedoch in erster Linie eine bequeme Methode, um eine Reihe von benannten Routen zu generieren, die Sie manuell ausführen können. So etwas.
Nicht getestet, aber es sollte dich nahe bringen.
Man kann Bedingungen an eine Ressourcenroute sowie eine benannte Route übergeben. In einer Anwendung, die ich mit allem zu tun habe, wird auf ein Konto verwiesen. A: before_filter lädt das Konto mit der Subdomain. Für Ressourcen, die auf ein Konto beschränkt sind, möchten wir die Routen auf URLs mit Subdomains beschränken. Der DRY-Weg, dies zu tun, ist die Verwendung von Karten mit Optionen:
%Vor%Wie Sie sehen können, wird eine benannte Route auch einen Bedingungshash mit einer Subdomain akzeptieren. Sie können auch den oben dargestellten Ansatz Ryan verwenden oder Sie können Bedingungen pro Ressource angeben:
%Vor%Hier ist eine vollständige Beispielimplementierung von Rails 3-Subdomains mit Authentifizierung (zusammen mit einem detaillierten Tutorial). In Rails 3 ist das viel einfacher als in Rails 2 (kein Plugin erforderlich).
Wenn Sie die aus Daniels Antwort verknüpfte Ressource verwenden, ist in Rails 3 die Methode zum Weiterleiten von '/' an einen anderen Controller abhängig von der Subdomäne wie folgt:
%Vor%Tags und Links ruby-on-rails routing subdomain