Ruby on rails 设计和当前用户
我有一个Rails 3应用程序,我正试图实现Desive和declarative_授权。 声明性_授权的一个重要部分是在用户模型中存在一个函数“role_symbols”。 由于我实现角色的方式,我在用户模型中实现了一个实例方法来跟踪一个值(我们称之为foo): 然后我们将在role_symbols方法中使用foo的值来限制有效角色,可能如下所示:Ruby on rails 设计和当前用户,ruby-on-rails,devise,declarative-authorization,Ruby On Rails,Devise,Declarative Authorization,我有一个Rails 3应用程序,我正试图实现Desive和declarative_授权。 声明性_授权的一个重要部分是在用户模型中存在一个函数“role_symbols”。 由于我实现角色的方式,我在用户模型中实现了一个实例方法来跟踪一个值(我们称之为foo): 然后我们将在role_symbols方法中使用foo的值来限制有效角色,可能如下所示: def role_symbols roles.where("foo = ?", @foo).name.underscore.to_sym end
def role_symbols
roles.where("foo = ?", @foo).name.underscore.to_sym
end
问题是,当我尝试为控制器中的当前_用户设置foo值时,该值不会保持不变,例如:
current_user.foo = 99
成功,但当我在另一个视图(或控制器)中检查该值时,current_user.foo的值为nil
当前的用户对象不只是会话中持久化的用户对象吗?
如果是,在当前用户对象内设置实例值时是否有一些锁定?幸运地在这里找到了答案:
current_user.foo = 99