我有一个 Rails 模型,用于验证 order_number 值的唯一性,它应该从 1_000_000 开始,因此我添加了一个用作第一个值的变量:
# order model
STARTING_NUMBER = 1_000_000
validates :order_number, uniqueness: true
Run Code Online (Sandbox Code Playgroud)
当我通过 Rubocop 检查我的代码时,出现错误:
app/models/order.rb:3:3: C: Rails/UniqueValidationWithoutIndex: Uniqueness validation should be with a unique index.
validates :order_number, uniqueness: true
Run Code Online (Sandbox Code Playgroud)
disable/enable我通过添加Rubocop 评论来修复它:
STARTING_NUMBER = 1_000_000
# rubocop:disable Rails/UniqueValidationWithoutIndex
validates :order_number, uniqueness: true
# rubocop:enable Rails/UniqueValidationWithoutIndex
Run Code Online (Sandbox Code Playgroud)
有更好的解决方案吗?
我们有一个持续时间(以秒为单位)值始终大于 60(1 分钟)的时间跟踪模型。
如果在小时或分钟开始时它们不为零且不为零,我需要将持续时间转换为小时和分钟。例如:
duration1 = 63000 # expected value: 17 h 30 m
duration2 = 28800 # expected value: 8 h
duration3 = 1800 # expected value: 30 m
duration4 = 300 # expected value: 5 m
Run Code Online (Sandbox Code Playgroud)
我几乎做到了,但是零值有一个小问题:
Time.at(duration1).utc.strftime('%H h %M m').sub!(/^0/, '')
# 17 h 30 m
Time.at(duration2).utc.strftime('%H h %M m').sub!(/^0/, '')
# 8 h 00 m
Time.at(duration3).utc.strftime('%H h %M m').sub!(/^0/, '')
# 0 h 30 m
Time.at(duration4).utc.strftime('%H h %M m').sub!(/^0/, '')
# 0 h 05 m
Run Code Online (Sandbox Code Playgroud)
感谢您的回答。
我使用命令下载了新版本的 git - 版本 2.26.0:
brew upgrade git
但我不能用它!如果我输入:
git --version
$ git version 2.22.0
Run Code Online (Sandbox Code Playgroud)
如果我尝试再次更新:
brew upgrade git
Warning: git 2.26.0 already installed
Run Code Online (Sandbox Code Playgroud)
如何解决这个问题?
在运行脚本之前,我需要测试正确的 Ruby 版本。在项目中,我们有文件 .ruby_version ,其中包含所需版本的数量。例如 .ruby_version 文件有:
2.5.5
Run Code Online (Sandbox Code Playgroud)
我可以使用 user 获取当前用户版本的 Ruby ruby --version,但此命令返回我需要的更多信息。例如:
ruby 2.5.5p157 (2019-03-15 revision 67260) [x86_64-darwin19]
Run Code Online (Sandbox Code Playgroud)
所以我的支票不起作用:
2.5.5
Run Code Online (Sandbox Code Playgroud)
知道如何修复它吗?