首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于禁用Rails/SkipsModelValidations的Rubocop命令:避免使用update_all错误

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

Stack Overflow用户
提问于 2020-08-13 16:07:19
回答 2查看 4.2K关注 0票数 8

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

代码语言:javascript
复制
UserTag.where(cms_tag_id: webhook.dig('entity', 'id')).update_all(is_deleted: true)

但我知道鲁波克的错误:

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

我知道我可以使用每个块并在一个块中通过e.update更新所有列,但是update_all要快得多,一行,很好的解决方案。

如何禁用这样的rubocop错误仅针对这,具体的行?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-13 16:14:28

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

代码语言:javascript
复制
rubocop --auto-gen-config --exclude-limit 999 --no-offense-counts

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

在rubocop禁用整个应用程序的检查之前,--exclude-limit xxx是一种犯罪行为。

--no-offense-counts没有在yml文件中记录有多少违法行为。

确保你已经考虑过忽略指针的后果;不遵循linter建议通常是不明智的。请注意,这将禁用对规范测试中所有违规行为的检查。

更新

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

代码语言:javascript
复制
Company.where(cms_tag_id: webhook.dig('entity', 'id')).update_all(is_deleted: true) # rubocop:disable Rails/SkipsModelValidations
票数 4
EN

Stack Overflow用户

发布于 2020-08-13 18:57:46

以下是@benjessop的回答:

若要选择性地对代码块禁用RuboCop,请使用# rubocop:disable . # rubocop:enable块,如下所示:

代码语言:javascript
复制
# rubocop:disable Rails::SkipsModelValidations

# The specified cop is not enforced here.
# Therefore, make this block of code minimal. 
# For example, just this one line:

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

# rubocop:enable Rails::SkipsModelValidations

还请参见:

在源代码中禁用Cops

关于RuboCop配置的更多一般信息

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63399047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档