2010-11-06 50 views
-1

我需要在我的模型中查找当前登录的用户。设置用于查找当前用户的类变量

我定义cattr_accessorcurrent_logged_inUser模型。

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

后来,在其他模型中,我使用User.current_logged_in_user访问变量。到现在为止它的工作。

这是否是正确的方法来实现这一点?

回答

0

一个很好的实现方法,除非你只是做你的代码,因为学习练习是使用像devise这样的插件。

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

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

我已经有一个rails应用程序。需要重写它以使它成为多租户。因此,我想到了这个问题,将current_user_id与我保存的所有数据一起插入。因此,我可以知道哪些数据属于哪个租户。我只是想保存重写所有的.create和.new方法,以在我的控制器中包含(:tenant_id => current_tenant_id)。 – srih4ri 2010-11-06 07:43:28