在hanami 1.0.0上运行的WEBrick因错误的拐点而显示错误

时间:2017-09-12 17:12:06

标签: ruby inflection hanami

我使用hanami generate model stimulus生成了模型。然后我修复了#34;刺激"刺激"刺激"在迁移文件名和里面,表名。

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

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

我查看了这些库,发现这个功能有Inflecto库。然后我尝试添加到hanami项目:

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

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

编辑defualt库文件:

# 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

1 个答案:

答案 0 :(得分:0)

我假设我们正在谈论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'
# ...

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