【发布时间】:2021-11-18 05:41:55
【问题描述】:
我有一个验证 order_number 值唯一性的 rails 模型,应该从 1_000_000 开始,所以我添加了一个用作第一个值的变量:
# order model
STARTING_NUMBER = 1_000_000
validates :order_number, uniqueness: true
当我通过 Rubocop 检查我的代码时,我遇到了一个错误:
app/models/order.rb:3:3: C: Rails/UniqueValidationWithoutIndex: Uniqueness validation should be with a unique index.
validates :order_number, uniqueness: true
我通过添加disable/enable Rubocop cmets 来修复它:
STARTING_NUMBER = 1_000_000
# rubocop:disable Rails/UniqueValidationWithoutIndex
validates :order_number, uniqueness: true
# rubocop:enable Rails/UniqueValidationWithoutIndex
有没有更好的解决方案?
【问题讨论】:
-
我已经打开了一个 PR,看看我们是否可以改进对那个警察的描述,使其更清晰,这对你有帮助吗? github.com/rubocop/rubocop-rails/pull/563
-
谢谢@AndyWaite,是的,会很棒。
-
更新已合并。
标签: ruby-on-rails ruby rails-activerecord activemodel rubocop