设置类变量以查找当前用户

时间:2010-11-06 06:51:01

标签: ruby-on-rails activerecord

我需要在我的模型中找到当前登录的用户。

我在cattr_accessor模型中定义了current_logged_in User

现在,当用户登录时,我设置了User.current_logged_in = current_user.id

稍后,在其他模型中,我使用User.current_logged_in_user访问变量。截至目前,它有效。

这是实施此方法的正确方法吗?

1 个答案:

答案 0 :(得分:0)

实现它的好方法,除非您只是将代码作为学习练习,否则使用像devise这样的插件。

那就是说,你应该避免访问模型中的current_user。 current_user是一个会话事物,不应该绑定到模型。而是将current_user作为参数传递给模型中的方法。类似的东西:

def can_delete_item(user)
  if user.is_admin?
    ....
  else
    .....
  end
    .....
end