首页 > 解决方案 > 我可以让 Devise 生成 rubocop 批准的代码吗?

问题描述

我想使用包括 Devise、authority 和 rolify 在内的许多工具创建一个新的 API/MVC 项目。我想在这个新建项目中建立的一件事是让我的代码库保持干净,并且我想从第一天开始就对它进行 lint。我尝试这样做,但 rubocop 回来时出现 228 个错误。这违背了这些工具生成的模板代码。你能生成对 linter 友好的模板文件吗?如果可以的话,我是否注定要修复错误/放入大量异常?

标签: ruby-on-railsdeviserubocoprolify

解决方案


不幸的是,不可能。

即使您从头开始引导一个新的 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,我会自动检查我的代码库是否存在错误、拼写错误和违规行为。您可以在此处查看任务。


推荐阅读