我正在构建一个名为Engrave的Rails引擎。
我像这样安装了引擎:
# Routes.rb of the host app
mount Engrave::Engine => "/engrave", :as => "engrave_engine"
在此引擎中,我有一个名为“PostsController”的 Controller 。当我导航到该 Controller 以查看这样的帖子:
/engrave/posts/1
时,出现此错误:undefined local variable or method `new_user_session_path'
引擎中的PostsController是从引擎 Controller 继承的,而后者又是从应用程序 Controller 继承的,就像这样:
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
模板文件中我无法弄清楚为什么在这种情况下无法使用此路由助手。我究竟做错了什么?
最佳答案
用
main_app.new_user_session_path
那应该工作
关于ruby-on-rails - 在Rails引擎 View 中缺少设计路线助手,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10712074/