【发布时间】:2020-10-15 22:44:57
【问题描述】:
我遇到了zeitwerk 的问题,我无法访问另一个同名的模型常量。例如:
在/app/models 我有一个worker.rb 文件,其中有一个常量RETRY_COUNT
class Worker < ApplicationRecord
RETRY_COUNT = 10
end
在/lib 中,我有一个/critical/worker.rb 文件,但在critical 下命名
module Critical
class Worker
some_method(::Worker::RETRY_COUNT)
end
end
我可以使用::Worker 调用工作模型类,但是当我调用::RETRY_COUNT 时,会导致
NameError: uninitialized constant Worker (call 'Worker.connection' to establish a connection)::RETRY_COUNT
无论如何?我可以在Critical::Worker 类上硬编码RETRY_COUNT,但我想避免这样做。
【问题讨论】:
-
::Worker.const_get(:RETRY_COUNT)可能有帮助吗? -
@JoshBrody 没用。任何获得常量的方法都会导致相同的错误
-
我尝试过的替代方案stackoverflow.com/a/33489452/4852449
标签: ruby-on-rails ruby ruby-on-rails-6 zeitwerk