我正在构建一个名为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/

10-13 05:54