6

我遇到了 Ryan bates 在他的 authlogic Railscast 中使用的这种称为记录的方法,但似乎无法理解它的作用。我已经阅读了文档,但我似乎无法理解该助手的用途。

def current_user
  return @current_user if defined?(@current_user)

  current_user_session && current_user_session.record
end

我想知道的是这是否只是从数据库中获取记录,为什么它与从数据库中获取数据的标准方式不同。

谢谢你。

4

1 回答 1

9

这个“记录”方法是 UserSession 和 User 模型之间的 belongs_to 关系。所以基于会话,它返回用户。

但是根据文档,它不再是“记录”了。但是“用户”。因此,您的 current_user 辅助方法应如下所示:

def current_user
    return @current_user if defined?(@current_user)
    @current_user = current_user_session && current_user_session.user
end
于 2009-10-12T09:17:22.013 回答