1

我用hanami generate model stimulus. 然后我将迁移文件名和内部表名中的“刺激”固定为“刺激”。

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

[ROM::Relation[Stimulus]] 无法推断架构。确保在设置 ROM 容器之前存在表。当您的迁移任务加载 ROM 容器时也可能发生这种情况,迁移不需要,因为只需要连接(模式解析没有返回列,表“刺激”可能不存在)

我查看了这些库,发现这个功能有 Infleto 库。然后我尝试将这两个添加到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
4

1 回答 1

0

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

你几乎成功了。令您震惊的是,执行 hanami 命令时似乎未加载初始化程序,并且可能是代码重新加载中的错误。因此,不要将初始化程序放入一个文件中,该文件会在执行 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'
# ...

我不确定这是否是放置自定义变形规则的好地方,但至少它有效。

于 2017-09-13T10:01:43.530 回答