ruby-on-rails - 我可以让 Devise 生成 rubocop 批准的代码吗?
问题描述
我想使用包括 Devise、authority 和 rolify 在内的许多工具创建一个新的 API/MVC 项目。我想在这个新建项目中建立的一件事是让我的代码库保持干净,并且我想从第一天开始就对它进行 lint。我尝试这样做,但 rubocop 回来时出现 228 个错误。这违背了这些工具生成的模板代码。你能生成对 linter 友好的模板文件吗?如果可以的话,我是否注定要修复错误/放入大量异常?
解决方案
不幸的是,不可能。
即使您从头开始引导一个新的 Rails 项目,Rubocop 也会发现问题。例如,一些代码行将被Metrics/LineLength
警察检测为冒犯。
您可能想知道为什么 Rails 不事先解决这些问题,这样人们就可以毫无顾忌地获得一个新项目。答案是,Rails 作为一个项目不接受与“外观”更改相关的拉取请求。因此,没有人解决这些问题。这是对这个决定的解释。Devise、Simpleform 等工具也存在同样的情况。
另一方面,Rubocop 是一个很棒的工具,但并非所有开发人员都同意默认设置。这就是为什么.rubocop.yml
存在所谓的东西。
我是代码质量的忠实拥护者,因此我非常感谢您的意图。-a
您可以尝试通过使用标志 ( )调用 rubocop 来修复其中的许多攻击rubocop -a
,然后手动修复其余的。在此之后,您将不会收到类似的冒犯消息。
我正在使用 Rubocop 来防止 ruby 代码异味,将 erblint 作为 ERB linter,将 HTMLHint 作为 HTML linter。我将所有这些工具组合在一个名为 .rake 的 rake 任务中quality
。当我运行时quality:all
,我会自动检查我的代码库是否存在错误、拼写错误和违规行为。您可以在此处查看任务。
推荐阅读
- python - 基于 col[a]==Value 填充 col[c]
- azure - 注册的应用程序未出现在 AAD B2C 身份体验框架中以运行自定义策略
- c++ - 从模板类继承时出现错误
- php - 使用 mysqli_fetch_assoc 时未加载 PHP 页面
- javascript - 如何使此断开连接命令起作用?
- python - 用于训练的张量流中的图像输入错误
- json - JSON 结果将值传递到另一个字段以进行超链接
- javascript - 如何在每次迭代中使用 reduce() 到 console.log?
- c++ - 当我在多个数组中有更多输入数据时,如何在 C++ 中创建排序结构?
- java - 如何使用 JPA 仅更新数据库中的指定列?