Welcher Pfad ist ein montierbarer Motor?

8

Ich muss innerhalb eines Layouts einer montierbaren Engine wissen, auf welchem ​​Pfad es gerade montiert ist. Was wäre der Weg, es zu tun?

z. Meine routes.rb enthält die folgende Zeile:

%Vor%

Von innerhalb des BackendCore brauche ich den Zugriff auf den Wert von "/ backend".

    
mxgrn 28.09.2011, 07:20
quelle

4 Antworten

8

UPDATE: Dies gilt wahrscheinlich nur für Rails 3!

Ich habe die Lösung gefunden:

%Vor%     
mxgrn 28.09.2011, 09:09
quelle
9

Wenn die Engine :as => einen anderen Namen hat, ist die Abfrage von named_routes nicht ausreichend. Dieser Affen-Patch wird tun:

%Vor%

Rufen Sie jetzt mounted_path in der Suchmaschine auf:

%Vor%

Hinweis: Vorsicht: Im Produktionsmodus werden die Klassen in Ihrer Engine ausgewertet, bevor die Routen der Haupt-App geladen werden. Der Aufruf dieser Methode in Klassenmakros funktioniert möglicherweise nicht!

    
Christoph Petschnig 08.02.2012 12:26
quelle
3

Die Auswertung der Routen zum Abrufen des Bereitstellungspfads kann zu unerwarteten Ergebnissen führen, wenn Engines in anderen Engines bereitgestellt werden.

Wenn Sie sich Ссылка ansehen, können Sie den Kommentar von Jose Valim lesen:

  

Außerdem kann ein Motor in einem anderen Motor eingebaut werden, so dass es unwahrscheinlich ist, dass Sie dadurch das richtige Ergebnis erhalten. Die beste Option ist wahrscheinlich eine Konfigurationsoption, bei der der Entwickler den Pfad festlegen wird.

Für konsistente Ergebnisse verwende ich jetzt einen Accessor für die Engine.

Zum Beispiel:

%Vor%     
Koen. 10.03.2016 12:54
quelle
-1

Sie könnten einfach den folgenden Code verwenden, um zu ermitteln, welche Pfad-Engine in einem Engine-Controller / View mount ist:

%Vor%     
Tian Chen 14.05.2016 16:27
quelle