如何重定向到精炼厂仪表板页面而不是应用程序根页面

时间:2012-10-08 12:32:41

标签: ruby-on-rails ruby-on-rails-3.2 refinerycms

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

localhost/refinery它需要我精炼厂登录页面,但之后 成功登录后,它会重定向回我的应用程序主页 比refinerycms仪表板页面。

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

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

1 个答案:

答案 0 :(得分: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

然后告诉devise在routes.rb中使用该控制器:

devise_for :users, :controllers => {:sessions => "users/sessions"}