3

使用 Devise 登录或注销后,我被重定向回父应用程序 root_path,而不是我的引擎的根路径(或者,如下所示,我尝试将其指定为 home_path)。

引擎路线:

MyEngine::Engine.routes.draw do
  devise_for :users, { 
    :class_name => "MyEngine::User",
    :module => :devise
  }

  get '/' => 'home#index', as: :home
  root :to => 'home#index'

end

引擎应用控制器:

module MyEngine
  class ApplicationController < ActionController::Base

    def after_sign_in_path_for(resource)
      home_path
    end

  end
end

谢谢...

4

1 回答 1

1

问题是没有命名会话控制器。在引擎中明确指定控制器,并将其命名空间正确解决了该问题。

路线:

MyEngine::Engine.routes.draw do
  devise_for :users, { 
    :class_name => "MyEngine::User",
    :module => :devise,
    :controllers => { :sessions => "my_engine/sessions" }
  }
end

'controllers/my_engine/sessions_controller' 中的 SessionsController:

module MyEngine
  class SessionsController < ::Devise::SessionsController

  end
end
于 2013-08-27T18:59:42.497 回答