【问题标题】:Tapioca shims for Rails Engines?用于 Rails 引擎的木薯粉垫片?
【发布时间】: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


    【解决方案1】:

    似乎用 config.root.to_s 替换 root.to_s 解决了这个问题!

    【讨论】:

    • 我不太确定为什么您认为需要将其转换为字符串。路径名实例是可比较的。
    猜你喜欢
    • 2018-12-11
    • 2014-02-21
    • 1970-01-01
    • 2012-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-19
    相关资源
    最近更新 更多