AuthLogic - 如何确定整个系统的当前用户ID?

时间:2010-05-23 06:04:01

标签: ruby-on-rails variables authlogic

我几乎完全按照http://github.com/binarylogic/authlogic_example上的AuthLogic示例应用程序设置了AuthLogic。

在有人以用户身份登录后,他们可以点击将其发送到系统并远离用户控制器的链接。这是一个令人难以置信的noob问题,但我如何从其他任何地方访问用户的ID和其他属性,例如无关的视图或不相关的控制器?

我想做的一个例子:

#matchings controller
@matching = Matching.find_by_user_id(user.id)

1 个答案:

答案 0 :(得分:5)

您可以使用current_user@current_user。返回current_user的函数在应用程序控制器中定义。

...
  private
  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
...

所以,你可以使用: @matching = Matching.find_by_user_id(current_user.id)
@matching = Matching.find_by_user(current_user)