-1
class ApplicationController < ActionController::Base

  private

  # Finds the User with the ID stored in the session with the key
  # :current_user_id This is a common way to handle user login in
  # a Rails application; logging in sets the session value and
  # logging out removes it.
  def current_user
    @_current_user ||= session[:current_user_id] &&
      User.find_by_id(session[:current_user_id])
  end
end

如何理解上面的代码?是什么||=意思?是@_current_userid 还是 user 对象?另外,为什么它以 开头_

谁能回答我@_current_user是什么?

4

1 回答 1

1

根据这个问题a ||= b是 的简写a || a = b

而关于 的值@_current_user,如果我们假设session[:current_user_id]5,那么&&具有 User 模型的运算符将返回 User 实例:

> 5 && User.new(:name => 'Foo')
=> #<User name="Foo"> 

@_current_userUser 实例也是如此。

于 2013-03-31T00:24:19.837 回答