Grape中的代码如下:

def market
@market ||= Market.find(params[:id])
end

@market基于类层次的实例变量,属于非线程安全,如果一直使用多线程服务器,可以使用 Thread.current 代替:

def market
Thread.current[:market] ||= Market.find(params[:id])
end

如果考虑到以后哦使用其他类型服务器,比如 Thin, 可以使用 request_store gem 包,参考: https://github.com/steveklabnik/request_store

参考:

https://github.com/ruby-grape/grape-rabl/issues/37

https://ruby-china.org/topics/30188

https://stackoverflow.com/questions/9558192/thread-safety-class-variables-in-ruby

最新文章

  1. Socket通信功能实现
  2. 在centos上配置IP
  3. mysql group_concat 使用 (按分组组合字段)
  4. 【poj2823】 Sliding Window
  5. C#检测驱动是否安装的问题
  6. 重写Equals为什么要同时重写GetHashCode
  7. ubuntu + subversion + apache2 设置
  8. webApi跨域
  9. PHP框架 Laravel Eloquent ORM 批量插入数据 && 批量更新目前没有
  10. Android 自学之基本界面组件(上)
  11. c#中字符串截取使用的方法
  12. SGU 165.Basketball
  13. oc对象互相引用内存释放解决方案
  14. 可爱的 Python : Python中函数式编程,第一部分
  15. NOIP2017D2T3 列队—Treap
  16. MT【293】拐点处切线
  17. Dev-C++安装第三方库boost
  18. Maven入门介绍
  19. ArcGIS Server 服务器日志(待修改)
  20. MYSQL数据库的参数文件

热门文章

  1. Git世界历险记
  2. Android学习笔记二之初始Activity
  3. Python全栈开发记录_第七篇(模块_time_datetime_random_os_sys_hashlib_logging_configparser_re)
  4. (Python基础)文件操作
  5. S表示1,L表示2,计算由S和L组成的序列之和为N的组合
  6. Tools:实现ping操作带时间戳【windows+linux】
  7. Timer与TimerTask
  8. eclipse启动tomcat正常,但是debug启动报错FATAL ERROR in native method:JDWP No transports initialized,jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197) ERROR: transport error 202: connect failed:Connection timed out
  9. HTML5 使用 JS 生成二维码,带头像
  10. mybatis映射文件#与$的使用,及参数传入规则