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_user
是id还是用户对象?另外,为什么它以_
开头?
任何人都可以回答我@_current_user
的内容吗?
答案 0 :(得分:1)
根据this question,a ||= b
是a || a = b
的缩写。
关于@_current_user
的值,如果我们假设session[:current_user_id]
是5
,那么具有User模型的&&
运算符将返回User实例:
> 5 && User.new(:name => 'Foo')
=> #<User name="Foo">
因此@_current_user
将成为用户实例。