Rubocop命令禁用Rails / SkipsModelValidations:避免使用update_all错误

问题描述

我想通过以下行将记录中的一列更改为is_deleted: true

UserTag.where(cms_tag_id: webhook.dig('entity','id')).update_all(is_deleted: true)

但是我遇到了Rubocop的错误:

Rails/skipsmodelvalidations: avoid using update_all because it skips validations.

我知道我可以使用每个块并通过e.update在一个块中更新所有列,但是update_all更快,只有一行,整洁。

如何仅针对此特定行禁用此类rubocop错误?

解决方法

您可以运行以下命令,这将生成一个.rubocop_todo.yml文件,该文件将记录并忽略违规文件的特定违法行为:

rubocop --auto-gen-config --exclude-limit 999 --no-offense-counts

--auto-gen-config生成yml文件,这是实现您所要查找的唯一非可选标志。

--exclude-limit xxx是在rubocop禁用整个应用程序的支票之前的多项罪行。

--no-offense-counts不会记录yml文件中有多少次攻击。

确保您已经考虑过忽略棉绒的后果;通常建议不要遵循短绒棉布的建议。请注意,这将禁用对规格测试中所有违规行为的检查。

更新

如果要在不生成文件的情况下禁用rubocop检查,则可以使用如下注释:

Company.where(cms_tag_id: webhook.dig('entity','id')).update_all(is_deleted: true) # rubocop:disable Rails/SkipsModelValidations
,

扩展@benjessop的答案:
要有选择地为某个代码块禁用RuboCop,请使用WORK HRS ... # rubocop:disable块,如下所示:

# rubocop:enable

另请参见:

Disabling Cops within Source Code
有关RuboCop Configuration

的更多常规信息

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...