我正在构建一个名为 Engrave 的 Rails 引擎。
我的引擎是这样安装的:
# Routes.rb of the host app
mount Engrave::Engine => "/engrave", :as => "engrave_engine"
在这个引擎中,我有一个名为“PostsController”的控制器。当我导航到此控制器以查看这样的帖子时:/engrave/posts/1
我收到此错误:
undefined local variable or method `new_user_session_path'
引擎中的 PostsController 继承自引擎控制器,引擎控制器继承自应用程序控制器,如下所示:
module Engrave
class PostsController < ApplicationController
...
end
class Engrave::ApplicationController < ApplicationController
end
new_user_session_path 由 devise 定义,我的设置如下:
devise_for :users
对 new_user_session_path 的调用位于主机应用程序layouts/application.html.erb
的模板文件中
我无法弄清楚为什么这个路线助手在这种情况下不可用。我究竟做错了什么?