Authlogic记录方法。这是做什么的

时间:2009-10-12 08:42:30

标签: ruby-on-rails ruby activerecord authlogic

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

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

  current_user_session && current_user_session.record
end

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

谢谢。

1 个答案:

答案 0 :(得分:9)

此“记录”方法是UserSession和User模型之间的belongs_to关系。 所以基于Session,它返回User。

然而,基于documentation,它不再是“记录”了。但“用户”。 所以你的current_user帮助方法应该如下:

def current_user
    return @current_user if defined?(@current_user)
    @current_user = current_user_session && current_user_session.user
end