4

我在 authlogic 的 application_controller.rb 中有以下辅助方法:

def current_user_session
  return @current_user_session if defined?(@current_user_session)
  @current_user_session = UserSession.find
end

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

我不明白 current_user_session 方法 - 具体来说,UserSession.find 如何获取当前用户的会话。我也不明白它对 find 做了什么,没有给出任何参数。

4

1 回答 1

3

它不需要传递参数,因为它使用一个唯一的会话 ID,其功能内置于 Rails中。查看find 方法的 authlogic 文档以获取更多信息。它与 Active Record 类不同,后者find在数据库中查询特定的主键。

于 2012-04-08T21:57:56.903 回答