1

我有一个使用 devise 2.0.0 进行身份验证的 rails 3.2.8 应用程序我将 refinerycms 与此应用程序集成,它现在已成功集成,问题是当用户点击

localhost/refinery它带我进入炼油厂登录页面,但在成功登录后它重定向回我的应用程序主页,而不是炼油厂的仪表板页面。

所以我想知道在炼油厂成功登录程序后如何重定向到炼油厂仪表板。我有路线挂载Refinery::Core::Engine

:at => '/' root to:'projects#index'

ETC

4

1 回答 1

0

创建一个自定义设计控制器,在用户登录后将其重定向到您想要的位置:

创建自定义控制器:controllers/users/sessions_controller.rb

  class Users::SessionsController < Devise::SessionsController

  before_filter :authenticate_user!, :only => [:destroy] 

  def new 
    super
  end

  def create
      #Can edit this for custom redirect
      super
  end

  def destroy
    super
  end

  protected

  def stub_options(resource)
     methods = resource_class.authentication_keys.dup
     methods = methods.keys if methods.is_a?(Hash)
     methods << :password if resource.respond_to?(:password)
     { :methods => methods, :only => [:password] }
  end

  def after_sign_in_path_for(resource)
      #Can edit this for custom redirect
      super
  end

  def after_sign_out_path_for(resource)
    super
  end

  private

end

然后告诉设计在你的 routes.rb 中使用该控制器:

devise_for :users, :controllers => {:sessions => "users/sessions"}
于 2012-10-10T02:57:21.670 回答