Rails 中的 PORO 范围

Scope of POROs in Rails

似乎在 PORO 上仅使用 class 方法(如 Rails 应用程序中的服务并由控制器调用)时,在所有请求中只创建了一个服务对象实例.

我知道 Rails 根据请求创建控制器和模型的新实例,但没有看到任何关于 Rails 如何处理您自己的 PORO 的记录。

你的理解是什么?

您可以假设大多数 class 实例都具有请求范围 - 无论它们是控制器、模型还是服务 (PORO)。如果它们被全局对象引用(例如 rails 配置),它们可以具有更广泛的范围。

它与 classes 有点不同 - 它们在应用程序启动时加载一次,然后在内存中。如果你只使用 class 方法,这意味着你使用 classes,而不是实例,因此你有全局范围。