Ich habe eine Rails Engine, die 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 ist Layout mit Helfern aus dem Behälter App zu unterstützen:Rails Engine mit isoliertem Namespace Freigeben eines Layouts
= link_to "Signup", new_user_path
= link_to "Login", new_user_path
...
Dies verursacht:
undefined lokale Variable oder Methode `new_user_path‘ für # < #: 0x007f9bf9a4a168>
I kann es beheben, indem Sie die application.html (in der Container-App) wie folgt ändern:
= link_to "Signup", main_app.new_user_path
= link_to "Login", main_app.new_user_path
Aber das Ziel ist es, es so zu machen, dass die Integration der Engine nicht erfordert, dass Benutzer Änderungen an der bestehenden Funktion vornehmen application.html
.
Ich glaube, ich kann auch die Fehler beheben, indem Sie isolate_namespace Example
von lib/example/engine.rb
entfernen, aber das bricht fast alles in der Engine.
Irgendeine Möglichkeit, Container-App-Helfer und explizit Namespace meine Motoren Helfer zu ermöglichen, Konflikte zu vermeiden? (d. h. unter Verwendung von example.root_path
anstelle von root_path
)?