【发布时间】:2022-01-02 20:22:08
【问题描述】:
在最新版本的 Rails 中,他们将 config.cache_classes = true 设置为 config/environments/test.rb。这对我来说很有意义,因为我们通常不会动态地重新加载类。但是,当我们使用 Spring 运行时,它抱怨应该将其设置为 false。如果有办法穿针并同时容纳两者,我会很高兴的,比如:
config.cache_classes = !Spring.enabled?
不过,我没有找到实现此目的的方法。有什么方法可以判断应用程序启动时 spring 是否处于活动状态?
【问题讨论】:
-
如果您的应用在测试套件运行之前加载 Spring(检查 bin/rspec 和/或 bin/rails),那么它将始终被加载。但是,如果您手动启动它,您可以使用
defined?(Spring)。 -
对我来说,无论是否使用 Spring,它看起来都是已定义的。我在我的
test.rb中放了一个binding.pry,无论是否运行spring rspec ...,它都定义了Spring。
标签: ruby-on-rails rails-spring