#为了避免频繁使用同一条数据库查询语句时,可以通过用一个实例变量放到缓存中的方式,实现在数据库中查询一次,此后调用缓存中的数据。
例如:
用户登陆时,需要找出用户数据。
这个方法在用户登陆之后被多次调用,每次调用都将进行一次数据库的查询。
----
解决方法:
@current_user ||= Uesr.find(session[:user_id])
保证只有在@current_user没有赋值的情况下执行 Uesr.find(session[:user_id])进行数据库查询。
例如:
用户登陆时,需要找出用户数据。
这个方法在用户登陆之后被多次调用,每次调用都将进行一次数据库的查询。
----
解决方法:
@current_user ||= Uesr.find(session[:user_id])
保证只有在@current_user没有赋值的情况下执行 Uesr.find(session[:user_id])进行数据库查询。
本文转自 fsjoy1983 51CTO博客,原文链接:http://blog.51cto.com/fsjoy/97088,如需转载请自行联系原作者