2012-06-29 42 views

回答

3

你可以添加一個隱藏字段referring_pagesign_in - 形式的former引薦,即場和迴路由添加到那裏,如果其現有的,像這樣:

def after_sign_in_path_for(resource) 
    params[:referring_page] || super 
end 

這是一個手動解決方案,但我把它更喜歡使用在控制器端複雜的邏輯。

1

我不明白你到底想要達到什麼目的,說:「如果用戶訪問他們沒有被授權查看的頁面,他們會被重定向到登錄頁面。登錄後他們被重定向到站點根目錄」

我認爲將會有兩套用戶之一是管理 - 用戶和其他非管理員用戶我處理這將是這樣的方式,

內部應用控制器

class ApplicationController < ActionController::Base 
    protect_from_forgery 

    check_authorization :unless => :devise_controller? 
    before_filter :authenticate_user! 

    rescue_from CanCan::AccessDenied do |exception| 
    redirect_to root_url, :alert => exception.message 
    end 

    protected 

    def stored_location_for(resource_or_scope) 
    nil 
    end 

    def after_sign_in_path_for(resource_or_scope) 
    if current_user.admin? 
     #add your desired path 
    else 
     #redirect to your desired path 
    end 
    end 
end