将纪元毫秒时间戳转换为可读日期时间

在许多情况下,例如在处理 JSON 格式的 API 响应、处理网站上嵌入的 JavaScript 资源等时,我们经常会看到 13 位长数字,我们可能知道它是源自 new Date().getTime() 等代码的纪元时间戳,但是,作为人类,我们无法快速判断它代表什么日期和时间。有一个名为 Epoch Converter 的便捷网站可以帮助轻松将其转换为人类可读的格式,但大多数时候对于开发人员来说,甚至还有比打开网站更快捷的方法,即使用许多编程语言自带的 interactive shell

升级到 Ruby 3.0.5

Ruby 3.0 带来了一些重大变化,这会给使用大量 gem 的典型 rails 应用带来很多麻烦,尤其是关键字参数行为的重大变化和 URI.escape 方法的删除。

将 Rails 从 5.2 升级到 6.0

将以 API 为中心的应用程序的 rails 版本从 5.2 升级到 6.0 时要处理的主要事情包括配置调整和修复弃用警告。

升级到 Ruby 2.7.6

在撰写本文时,Ruby v2.7.6v3.0 之前的最新版本,如果应用程序使用依赖于 BigDecimal 的库,升级到 v2.7.6 可能会遇到重大问题。

Ruby `defined?` 在哪里定义?

有没有想过 Ruby 的 defined? 是在哪里定义的?因为它看起来很像一个方法,所以你可能会尝试检查很多地方,例如:ObjectKernelBasicObject,甚至 ClassModule,但最终却找不到它。好吧,直到你意识到这一点,答案才变得非常简单:defined? 不是一个方法,而是一个运算符或关键字。

将 Rails 服务器从 unicorn 切换到 puma

在 rails 应用中,最常用的两种流行 Web 服务器中,unicorn 使用工作进程处理请求,而 puma 则同时使用工作进程和线程。因此,从 unicorn 切换到 puma 不仅有助于提高并发性,还可以减少内存使用量。另外,从 rails 5.0 开始,默认使用的 Web 服务器是 puma。

将Rails从 5.1 升级至 5.2

将应用程序 rails 版本从 5.1 升级到 5.2 比从 4.2 升级到 5.0从 5.0 升级到 5.1 要容易得多,需要处理的变化很少,并且很可能不会出现测试失败。

如何将百万条记录导入mysql

使用名为 activerecord-import 的 gem,将大量记录导入 mysql 表变得更容易,这篇文章演示了如何实现它。

将 Rails 从 5.0 升级到 5.1

将应用程序 rails 版本从 5.0 升级到 5.1从 4.2 升级到 5.0 更容易,因为这只是一次小版本更新。但是,可能仍有很多问题需要解决,无论是由于框架更改还是由于过时的 gems 依赖关系。

Ruby rspec

RSpec 是 ruby​​ 中流行的测试框架。

Rails 自动加载线程不安全

Rails 框架会自动加载常量,因此在“开发”或“测试”等环境中,应用程序无需在处理请求之前将所有内容加载到内存中。但是,众所周知,自动加载在 Rails 中是线程不安全的(至少对于低于 6 的版本而言),如果您碰巧使用 pumawebrick 等线程服务器,则很容易遇到由多线程引起的意外问题。

将 Rails 从 4.2 升级至 5.0

将 rails 升级到新的主要版本可能比较棘手,因为框架本身或项目中使用的许多 gem 可能会发生许多重大变化,这些变化要么被弃用,要么不再受支持。但是,如果按照正确的程序进行,它也可以顺利进行。这篇文章根据我最近将 API 服务器的 rails 从 4.2.11 升级到 5.0.7.2 的实际经验分享了升级过程。请注意,根据项目配置或依赖项,不同项目的升级步骤可能略有不同。

带有 cookie 的 Ruby http 请求

带有 cookie 的 Ruby http 请求。

Ruby parallel gem 用例

Ruby parallel gem 用例。

Ruby rack

Rack 是 ruby​​ 世界中提供 web 框架 (ruby on rails, sinatra) 和 web 服务器 (webrick, puma, unicorn) 之间接口的 gem。

Ruby rake

Rake 是 Ruby 中类似 Make 的任务运行器。首先在 Rakefile 中以 ruby​​ 语法定义任务列表,然后使用 rake 命令调用任务。

Ruby bundler

Bundler 用于 ruby​​ 项目中的依赖管理。

Ruby gems

Ruby gem 是一个包含可重复使用的 ruby​​ 应用程序或库的软件包。

Ruby rbenv

rbenv 用于管理多个 Ruby 版本,这里总结了一些常用的命令,以供快速参考。

Ruby 基础

学习 Ruby 的一些基础知识。