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
)?
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?
Tags und Links ruby-on-rails rails-engines