当前位置: 首页 > news >正文

Caching with Instance Variables 缓存与实例变量

class ApplicationController < ActionController::Base

  def current_user

     User.find(session[:user_id])
   end
end

上面那段代码的意思是定义一个current_user的方法,函数的作用是调用User中的find方法传入会话中的user_id从数据库读取当前登录大的用户信息。如果这个方法被多次调用,将会多次访问数据库,可以定义一个实例变量,将第一次调用时候的结果缓存到实例变量中供下次调的时候使用可以解决重复数据库访问的问题

   改写为:@current_user||=User.find(session[:user_id])

    第一次调用的时候@current_user变量的数值为空,执行后面的查询数据库操作,并将结果返回给@current_user储存,下次如果再调用这个方法的时候就不会执行查询数据库的操作,直接返回结果。通过代码大大提升了效率。

 

转载于:https://www.cnblogs.com/JackyKun/p/4870553.html

相关文章:

  • jsf初学解决faces 中文输入乱码问题
  • Java随机数生成原理
  • jvm参数详解,内存泄露解决
  • HDU 2815 Mod Tree 离散对数 扩张Baby Step Giant Step算法
  • centos 7 修改默认运行级别
  • Python之继承
  • hbase学习笔记1——脚本简单总结
  • 第四次作业——个人作业——软件案例分析
  • iOS小技巧之UIImagePickerController实现头像选择
  • 批量添加tiptop账号(批量添加Linux账号)
  • layer官方演示与讲解(jQuery弹出层插件)
  • 2015年10月26日作业
  • Python windows serial
  • ubuntu 系统网络突然网络已禁用
  • Golang的安装
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • go语言学习初探(一)
  • JavaWeb(学习笔记二)
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • JS字符串转数字方法总结
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • Making An Indicator With Pure CSS
  • nodejs:开发并发布一个nodejs包
  • Python中eval与exec的使用及区别
  • React-Native - 收藏集 - 掘金
  • Vue全家桶实现一个Web App
  • 百度地图API标注+时间轴组件
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 基于HAProxy的高性能缓存服务器nuster
  • 区块链共识机制优缺点对比都是什么
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 正则学习笔记
  • ionic入门之数据绑定显示-1
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • ​HTTP与HTTPS:网络通信的安全卫士
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • #{}和${}的区别是什么 -- java面试
  • $.ajax()参数及用法
  • (1)Nginx简介和安装教程
  • (13)Hive调优——动态分区导致的小文件问题
  • (4)(4.6) Triducer
  • (ZT)薛涌:谈贫说富
  • (阿里云万网)-域名注册购买实名流程
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (接口自动化)Python3操作MySQL数据库
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (转)创业的注意事项
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • **CI中自动类加载的用法总结
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .Net CoreRabbitMQ消息存储可靠机制