Mse*_*enb 3 ruby-on-rails helpermethods ruby-on-rails-3
我已经看到在应用程序控制器方法中经常使用或等于|| =来设置变量(如果它不存在).最近的Railscasts 270.但我有一个问题..例如这个帮助方法
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
Run Code Online (Sandbox Code Playgroud)
根据我的理解,如果@current_user尚不存在,则设置它.这意味着rails不必去数据库,性能获胜等.
但是我对@current_user的范围感到困惑.假设我们网站有两个用户.第一个(让我们称之为"bob")来到网站并将@current_user设置为他的用户对象.现在当第二个("john")进来并且rails要求@current_user时...为什么用户对象仍然不是bob的?毕竟@burrent_user已经设置了一次当bob命中网站所以变量存在?
困惑.
| 归档时间: |
|
| 查看次数: |
615 次 |
| 最近记录: |