Ruby on Rails Route für Wildcard-Subdomains zu einem Controller / Aktion

8

Ich erstelle dynamisch URLs der Form username.users.example.com :

%Vor%

Alle *.users.example.com -Anfragen sollten zu einem bestimmten Controller / einer bestimmten Aktion gehen. Wie definiere ich das in routes.rb ?

Alle anderen Anfragen an www.example.com gehen zur normalen Liste der Routen in meiner routes.rb Datei.

UPDATE : Ich sehe die Railscasts über Subdomains und es zeigte das folgende Bit des Codes, der genau zu sein scheint, was ich brauche (hat den Controller und die Subdomain geändert):

%Vor%

Das Problem ist, dass es nur der Root-URL entspricht. Ich brauche das, um JEDE mögliche URL mit einer *.users Subdomain übereinzustimmen. Also würde ich es natürlich an die Spitze meiner routes.rb Datei setzen. Aber wie lege ich eine Sammelroute fest? Ist es einfach '*' ? Oder '/*' ?

    
at. 14.10.2013, 11:32
quelle

2 Antworten

7

Ich denke, Sie müssen nur Folgendes tun:

Erstellen Sie eine Klasse Subdomain in lib :

%Vor%

und in deinem routes :

%Vor%     
Amit Thawait 15.10.2013 05:41
quelle
0

Sie können die Constraint-Route basierend auf bestimmten Kriterien dynamisch erstellen, indem Sie eine matches? -Methode erstellen

Sagen wir, wir müssen die Subdomain der URL filtern

%Vor%

Was wir hier machen, ist die Suche nach der URL, wenn sie mit der Sub-Domain users beginnt und dann nur users#show action. Ihre Klasse muss mathes? method entweder Klassenmethode oder Instanzmethode haben. Wenn Sie es zu einer Instanzmethode machen wollen, tun Sie

%Vor%

Sie können dieselbe Sache auch mit lambda erreichen, wie unten.

Anstatt die Klasse zu schreiben, können wir auch lambdas

verwenden %Vor%     
Subhash Chandra 12.04.2016 07:05
quelle