HANAMI 1.0.0 上的 WEBrick 运行 由于变形错误而显示错误

WEBrick run on hanami 1.0.0 shows errors because of wrong inflection

我用 hanami generate model stimulus 生成了模型。然后我将迁移文件名中的 "stimuluses" 固定为 "stimuli",并在内部将 table 名称固定为 "stimuli"。

每次加载页面时,我都会在服务器控制台中收到此错误 window:

[ROM::Relation[Stimuluses]] 无法推断架构。在设置 ROM 容器之前确保 tables 存在。当您的迁移任务加载 ROM 容器时也可能发生这种情况,迁移不需要它,因为只需要连接(模式解析未返回任何列,table "stimuluses" 可能不存在)

我查看了库,发现此功能有 Inflecto 库。然后我尝试将两者都添加到 hanami 项目中:

# /config/initializers/inflecto.rb
require 'inflecto'

Inflecto.inflections do |inflect|
  inflect.irregular('stimulus', 'stimuli')
end

并编辑默认库文件:

# gems/inflecto-0.0.2/lib/inflecto/defaults.rb
Inflecto.inflections do |inflect|
  ...
  inflect.irregular('stimulus', 'stimuli')
  ...
end

但是重启服务器后还是有提示

这是我应该解决的问题吗?如果是,该怎么做?

编辑:

也尝试过:

# /config/initializers/inflector.rb
require 'hanami/utils/inflector'

Hanami::Utils::Inflector.inflections do
  exception 'stimulus', 'stimuli'
end

我假设我们在谈论 Hanami v1.0.0,对吧?

你差一点就成功了。令您震惊的是,在执行 hanami 命令和 maybe a bug in code reloading 时,初始化程序似乎未加载。因此,不要将初始化程序放入一个文件中,该文件会在执行 hanami 命令时加载,或者在这样的地方需要初始化程序文件。例如,

# config/initializers/inflections.rb
require 'hanami/utils/inflector'

Hanami::Utils::Inflector.inflections do
  exception 'stimulus', 'stimuli'
end

然后在你的环境文件中

# config/environment.rb
# ...
require_relative 'initializers/inflections.rb'
# ...

我不确定这是否适合放置自定义词形变化规则,但至少它有效。