Rails-Engine mit isoliertem Namespace Freigeben eines Layouts

8

Ich habe eine Rails-Engine , der ich ein Layout aus der Container-Anwendung freigeben möchte. Ich möchte alle URL-Helfer aus den Layouts der Haupt-App unterstützen, um die Integration trivial zu machen. Das heißt, Layouts mit Helfern aus der Container-App zu unterstützen:

%Vor%

Das verursacht:

  

undefinierte lokale Variable oder Methode 'new_user_path' für # & lt; #: 0x007f9bf9a4a168 & gt;

Ich kann es beheben, indem ich die application.html (in der Container-App) in:

ändere %Vor%

Aber das Ziel ist, es so zu machen, dass die Integration der Engine keine Änderungen an der bestehenden Funktion application.html erfordert.

Ich glaube, ich kann auch die Fehler beheben, indem ich isolate_namespace Example von lib/example/engine.rb entferne, aber das bricht fast alles in der Engine.

Irgendeine Möglichkeit, Container-App-Helfern und explizit Namespaces meine Engine-Helfer zu erlauben, Konflikte zu vermeiden? (d. h. mit example.root_path anstelle von root_path )?

    
Kevin Sylvestre 30.07.2015, 22:12
quelle

1 Antwort

0

Sieh dir das an: Ссылка

Sie können Ihre Helfer aus Ihrer Suchmaschine in Ihre Host-App aufnehmen.

%Vor%

Auf diese Weise können Sie Ihren Helfer ohne Probleme in Ihrem Rails-Host verwenden. Natürlich gibt es keinen richtigen Namespacing auf diese Weise. Wenn also ein Nutzer Ihrer Engine eine neue Hilfsmethode wie Ihre Hilfsmethode benennt, kommt es zu einem Konflikt.

Beantwortet das Ihre Frage?

    
Holger Frohloff 27.03.2017, 15:17
quelle

Tags und Links