Rails 时区操作
事先声明,本文操作均使用 PG 数据库,保存到数据库的时间不带时区。
- by:
- 0 Comments
首先说一个印象比深刻的用户串号的问题。
情况是这样的,当时用户访问网页时,不管是之前登录过的还是没登录过的,都自动登录到同个用户上面去了。检查之后,发现跟最近做的调整有关:用户自动延长登录时长,给频繁调用的接口添加缓存。简单说明一下,自动延长登录时长是通过在接口返回头中带上新的登录 token,用户端检测到新 token 时就替换掉旧的,这样能避免用户每过段时间就重新登录一次。
上一节介绍了warden是如何验证用户的登录授权身份,但是对于cookie和session之间是如何生成的,是如何产生关联的,然后是怎么通过保存session数据到cookie中的还有点模糊。总结分享下Rails中是如何处理cookie和session的。
DSL是Ruby这门语言较为广泛的用途之一,不过如果不熟悉Ruby的元编程的话,难免会被这类语法弄得一脸蒙蔽。今天主要就来看看DSL它是个什么东西,它在Ruby社区中地位怎么样,以及如何实现一门简单的DSL。
在许多编程语言中都会有闭包这个概念。今天主要来谈谈Ruby中的闭包,它在这门语言中地位如何,以什么形式存在,主要用途有哪些?
原文 Faster Rails: Is Your Database Properly Indexed?
我的 Rails 应用正常流畅的工作了好几个月后,随着产品的增长和用户开始涌入,Web 请求开始变得缓慢,数据库 CPU 使用率开始上升。然而我并没有做过什么更改,为什么应用就开始变慢了?
这个问题是否有解决办法? 或者说在 Rails 下不支持大规模地扩展?
许多编程语言都会附带eval的功能,通常会出现在动态语言中,它就有点像是一个微型的解释器,可以在运行时解释代码片段。这篇文章主要以Ruby为例,详细介绍Ruby中的eval
家族。
If you are writing program by C programming language, you may need to care about how many memories to allocate, and when you should deallocate them. That is a heavy work for programmers, but at the same time it is very interesting. You will recognize that when defining a float
variable, how many memories we need to allocate? Why a function can modify extern variables by passing the pointer of them?
散列表(也叫Hash表)是一种应用较为广泛的数据结构,几乎所有的高级编程语言都内置了散列表这种数据结构。然而散列表在不同的编程语言中称呼不一样,在JavaScript中被称为对象,在Ruby中被称为哈希,而在Python中被称为字典。即便称呼不同,语法不同,它们的原理基本相通。