2010-12-19 11 views
0

私はdeviseとdeclarative_authorizationを実装しようとしているRails 3アプリを持っています。 declarative_authorizationの重要な部分は、ユーザーモデル内に関数 "role_symbols"が存在することです。 ので、私は役割を実装する方法のため、私のような(のがfooを呼びましょう)の値を追跡するために、ユーザーモデル内でインスタンスメソッドを実装しています:deviseと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 

問題は、たとえば、私はコントローラにCURRENT_USERのためにfooの値を設定しようとすると、値がつかないです。

current_user.foo = 99 

は成功ですが、別のビュー(またはコントローラ)の値をチェックすると、current_user.fooの値はnilになります。

current_userオブジェクトは、Sessionに保持されているUserオブジェクトではありませんか? もしそうなら、current_userオブジェクト内のインスタンス値を設定するためのロックがありますか?

答えて

関連する問題