Zeitwerk 需要重新加载每个更改
Zeitwerk needs to reload every change
在开发环境中,当使用 zeitwerk 时,ruby 代码中的每个更改都需要重新启动服务器,因为 zeitwerk 没有加载 mygem 中定义的 类。我有一台 gem,我公司用的是 rails 型号。其中一些模型被重新打开,我们添加了一些方法。
我的应用程序中有以下模型。
require_dependency("#{Mygem::Engine.root.join('app','models','identification.rb')}")
class Identification
include Cacheable
has_paper_trail
def some method
end
end
以及我的gem中的以下模型,我的路径gem app/models/identification.rb:
class Identification < ApplicationRecord
self.table_name = 'pub_identification'
belongs_to :city, foreign_key: 'idcity'
end
但是如果我更改了我的代码中的任何内容,我需要重新启动我的服务器,因为我的 gem 中的模型没有重新打开。我收到错误:
undefined local variable or method `has_paper_trail' for Identification:Class
has_paper_trail
方法是我的gem 中的一个方法。而且它只有在我重新启动时才有效。对此有什么建议吗?
编辑:
Gem结构:
mygem/
├─ app/
│ ├─ models/
├─ config/
├─ lib/
不能有两个文件在自动加载路径中定义相同的常量。
你的引擎定义了一个模型,应用程序想要装饰它。对于此用例,请查看 this documentation.
在开发环境中,当使用 zeitwerk 时,ruby 代码中的每个更改都需要重新启动服务器,因为 zeitwerk 没有加载 mygem 中定义的 类。我有一台 gem,我公司用的是 rails 型号。其中一些模型被重新打开,我们添加了一些方法。
我的应用程序中有以下模型。
require_dependency("#{Mygem::Engine.root.join('app','models','identification.rb')}")
class Identification
include Cacheable
has_paper_trail
def some method
end
end
以及我的gem中的以下模型,我的路径gem app/models/identification.rb:
class Identification < ApplicationRecord
self.table_name = 'pub_identification'
belongs_to :city, foreign_key: 'idcity'
end
但是如果我更改了我的代码中的任何内容,我需要重新启动我的服务器,因为我的 gem 中的模型没有重新打开。我收到错误:
undefined local variable or method `has_paper_trail' for Identification:Class
has_paper_trail
方法是我的gem 中的一个方法。而且它只有在我重新启动时才有效。对此有什么建议吗?
编辑:
Gem结构:
mygem/
├─ app/
│ ├─ models/
├─ config/
├─ lib/
不能有两个文件在自动加载路径中定义相同的常量。
你的引擎定义了一个模型,应用程序想要装饰它。对于此用例,请查看 this documentation.