我的Rails应用程序使用了一个定义了首字母缩略词变化的引擎:
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.acronym "UI"
end
字符串
这意味着(例如)Rails将从helpers/ui_helper.rb
而不是UiHelper
加载UIHelper
。
现在我想使用一个gem("motor-admin"
),但是我得到了这个错误:
uninitialized constant Motor::UIController
型
这是因为gem的类名是Motor::UiController
,但其词形变化是寻找Motor::UIController
(注意Ui
与UI
)。
我试着按照Rails指南中的自定义屈折来做,但似乎无法消除这个错误。
如何配置Rails以正确加载带有"UI"
首字母缩略词变形的Motor::UiController
?
1条答案
按热度按时间lxkprmvk1#
你可以尝试以下方法:
字符串
编辑添加:你可能也要为模型做这个。如果你运行
bin/rails zeitwerk:check
,它会告诉你哪些文件还需要修改。我还没有尝试改变一个包含的宝石控制器的名称,但我做了一个升级,从5.2到7.0,并不得不这样做,为我自己的控制器的名称是在相同的形式,汽车似乎正在采取。