首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Zeitwerk需要重新加载每一个更改

Zeitwerk需要重新加载每一个更改
EN

Stack Overflow用户
提问于 2022-03-29 20:25:16
回答 1查看 248关注 0票数 1

在开发环境中,当使用zeitwerk时,ruby代码中的每一个更改都需要重新启动服务器,因为zeitwerk没有加载mygem中定义的类。我有一个宝石,我的公司使用rails模型。其中一些模型被重新打开,我们添加了一些方法。

我的应用程序中有下面的模型。

代码语言:javascript
复制
require_dependency("#{Mygem::Engine.root.join('app','models','identification.rb')}")

class Identification
  include Cacheable
  has_paper_trail

  def some method
  end
end

以及mygem中的以下模型,我的创业板应用/模型/标识的路径。my:

代码语言:javascript
复制
class Identification < ApplicationRecord
  self.table_name = 'pub_identification'

  belongs_to :city, foreign_key: 'idcity'
end

但是,如果我更改代码中的任何内容,我需要重新启动服务器,因为来自我的宝石的模型不会被重新打开。我知道错误:

代码语言:javascript
复制
undefined local variable or method `has_paper_trail' for Identification:Class

has_paper_trail方法是mygem的一种方法。只有在我重新启动的时候才能起作用。有什么建议吗?

编辑:

创业板结构:

代码语言:javascript
复制
mygem/
├─ app/
│  ├─ models/
├─ config/
├─ lib/
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-29 22:04:37

不能有两个文件在自动加载路径中定义相同的常量。

您的引擎定义了一个模型,应用程序希望对其进行修饰。对于这个用例,请看一下这份文件

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71668387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档