Ich baue eine Rails-Engine namens Engrave.Missing devise routes helpers innerhalb von Schienen engine views
Ich habe den Motor wie so montiert:
# Routes.rb of the host app
mount Engrave::Engine => "/engrave", :as => "engrave_engine"
In diesem Motor ich einen Controller namens "Posts". Wenn ich an diesen Controller navigieren wie einen Beitrag sehen so: /engrave/posts/1
bekomme ich diesen Fehler:
undefined local variable or method `new_user_session_path'
Der Posts im Motor von der Motorsteuerung erbt, die von der Anwendungssteuerung erbt, etwa so:
module Engrave
class PostsController < ApplicationController
...
end
class Engrave::ApplicationController < ApplicationController
end
Die new_user_session_path von devise definiert wird, was ich habe Setup wie:
devise_for :users
Der Aufruf von new_user_session_path ist in der layouts/application.html.erb
Vorlagendatei in der Host-App
Ich kann nicht herausfinden, warum diese Route Helfer in diesem Zusammenhang nicht verfügbar ist. Was mache ich falsch?
Ich habe StrangeDays als richtig markiert, weil es technisch das Problem behebt, aber wenn jemand eine Idee davon hat, wie man eine Engine auf diese Weise verwendet, ohne dass ich alle meine Layout-Vorlagen ändern müsste, wäre das großartig. Ich spielte herum und schaffte es, das zu erreichen, was ich wollte, indem ich eine vollständige Engine anstelle einer isolierten/montierbaren Engine erstellte. Ich glaube, mir fehlt noch etwas, ich möchte meinen Kuchen essen und es auch hier essen. – Jeff