【发布时间】:2022-11-17 16:48:59
【问题描述】:
我有一个使用 Rails 引擎和 packwerk 组织代码的 Rails 应用程序。每个 packwrk 组件都有一个 engine.rb 文件,有时看起来像这样:
module Foobar
class Engine < ::Rails::Engine
isolate_namespace Foobar
initializer :foobar_set_migration_paths do |app|
unless app.root.to_s.match? root.to_s
config.paths['db/migrate'].expanded.each do |expanded_path|
app.config.paths['db/migrate'] << expanded_path
end
end
end
end
end
我还使用 Sorbet 和 Tapioca 来输入我的文件。我试图将这些engine.rb 文件带到# typed: strict,但是当我这样做时抱怨root.to_s 部分,说Rails::Engine 不存在该方法,但 Sorbet 给出的建议是错误的。
Tapioca 允许创建垫片以正确输入这些情况,但我找不到修复它的方法。
我该如何解决?
谢谢!
【问题讨论】:
标签: ruby-on-rails sorbet