2010-12-19 59 views
0

我有一個Rails 3應用程序,我試圖實現設計和declarative_authorization。 declarative_authorization的一個重要部分是在用戶模型中存在一個函數「role_symbols」。 因爲我實現了角色的樣子,我實現了用戶模型中的實例方法,以保持一個值的軌跡(讓我們調用foo)這樣:設計和current_user

attr_accessor :foo 

    def foo=(val) 
    @foo = val 
    end 

    def foo 
    @foo 
    end 

然後,我們將使用內部的foo的值role_symbols方法來限制的有效角色,也許是這樣的:

def role_symbols 
    roles.where("foo = ?", @foo).name.underscore.to_sym 
end 

的問題是,當我嘗試設置foo的值,在控制器的CURRENT_USER,價值不沾,例如:

current_user.foo = 99 

是成功的,但是當我檢查另一個視圖(或控制器)中的值時,current_user.foo的值爲零。

是不是current_user對象只是一個持久化在會話中的用戶對象? 如果是這樣,在current_user對象內設置實例值是否存在一些鎖定?

回答

相關問題