2012-03-14 61 views
0

我已經在我的用戶模型中定義了兩個角色:的Rails 3.2 - 應用控制器+設計CURRENT_USER問題

User.role == admin 
or 
User.role == basic 

在我應用控制器

include MobilizedController 

的lib/mobilized_controller.rb

module MobilizedController 
    extend ActiveSupport::Concern 

    included do 
    before_filter :set_basic_request, :if => :basic_logged_in? 
    end 

    private 

    def set_basic_request 
    request.format = :basic 
    prepend_view_path "app/views/basic" 
    end 

    def basic_logged_in? 
    current_user.role == 'basic' 
    end 
end 

這一切都很好,當我登錄時,它正確設置Mime類型並呈現我的基本視圖。 不幸的是,當我沒有在我登錄得到:

的零

未定義的方法「角色」:NilClass

我猜意思是CURRENT_USER沒有設置,從而對呼叫無它不會工作。

有沒有人有任何建議呢?如果用戶未登錄,我需要能夠呈現默認登錄頁面,然後在登錄時設置Mime類型。

任何幫助?

回答

0

在您的basic_logged_in示例中,您將current_user.role設置爲basic。看起來你沒有爲管理員或未登錄的用戶設置角色。

因此,如果您未登錄或以管理員身份登錄,current_user.role未設置。