ruby-on-rails - 在 Ruby 文件中查找所有 undefined variable ?

标签 ruby-on-rails ruby

我遇到了很多与 undefined variable 相关的生产问题。如何在 Ruby 文件中查找所有 undefined variable ?是否有任何 gem/脚本可以扫描代码文件并检测可能的问题。这样我就可以在生产部署或接受拉取请求之前测试代码。

最佳答案

这真的做不到。 可以定义变量的方法太多了。无论出于何种原因,也有相同数量的方法可以将应定义的变量设置为 nil

您可以在启用警告的情况下运行 Ruby(命令行上的 -w),它会强烈提示这些事情。它只会提示代码执行路径上的变量,因此如果有部分您没有执行,您将不会收到警告。

这就是为什么拥有一个详尽测试分支的测试套件对于消除此类错误至关重要的原因。如果您的代码中有 if,则需要对其进行两次测试。如果您有两个 if 子句,则可能需要三个或四个。任何带有 case 的东西都需要测试所有分支。对于包含大量业务逻辑的项目来说,这可能是一项大量工作。

由于 Ruby 本身并未编译,因此它无法在代码运行之前检测到此类问题。根据代码其他部分的影响,文件中的内容和实际执行的内容可能截然不同。在 C 或 Rust 等更保守的语言中,情况并非如此。

关于ruby-on-rails - 在 Ruby 文件中查找所有 undefined variable ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42743989/

相关文章:

ruby - 无法将 2 个数组组合成一个散列 - ruby

ruby-on-rails - 使用 EBC 的架构的实际示例?

Ruby + 如何将 pdf 拆分为单独的页面?

sql - Rails 控制台 : update column values with trimmed values

ruby-on-rails - Rails Active Storage - 如何将本地文件迁移到 s3 存储桶

ruby-on-rails - 检查哪个 Rails 版本时出错

ruby-on-rails - ruby 中关键字 "do"的含义是什么?

javascript - 选择用户,然后选择他的挑战的下拉列表

ruby-on-rails - Rails 验证数组中的值

ruby-on-rails - RunTimeError:Rspec 2.10.1 中的 ActionController::RackDelegation for rails 3.1.4 应用程序 Controller