我使用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
答案 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'
# ...
我不确定这是否是放置自定义变形规则的好地方,但至少它是有效的。