rubocop 进攻但不确定哪里出了问题
rubocop offense but not sure what is wrong
我正在清理我继承的一些代码,有这一行,但老实说,我不确定 rubocop 试图告诉我的是什么错误。
total_cost = tmp_totals.inject { |total, tmp_val| total + tmp_val }
我遇到了这个错误
app/models/item_count.rb:58:40: C: Name inject block params |acc, elem|
看起来像这样:
我只是想绕过这个警察。它告诉我要修复的内容有什么想法吗?
默认情况下,Rubocop 希望您将这两个变量命名为 acc
和 elem
而不是 total
和 tmp_val
。你可以自己配置它想要的变量rubycop.yml。默认设置如下:
Style/SingleLineBlockParams:
Methods:
- reduce:
- acc
- elem
- inject:
- acc
- elem
Rubocop 这个有点太死板了。
它应该只是检查第二个参数没有被称为 mem
或 acc
恕我直言。
只需使用 :
total_cost = tmp_totals.inject(0) { |acc, elem| acc + elem }
或
total_cost = tmp_totals.inject(0, :+)
Rubocop 不会抱怨,对于空数组,您将得到 0 而不是 nil。
如果您不确定 rubocop 抱怨什么,您可以:
确保您的代码已提交
使用rubocop -a script.rb
检查代码是否仍然有效
看看有什么区别
我正在清理我继承的一些代码,有这一行,但老实说,我不确定 rubocop 试图告诉我的是什么错误。
total_cost = tmp_totals.inject { |total, tmp_val| total + tmp_val }
我遇到了这个错误
app/models/item_count.rb:58:40: C: Name inject block params |acc, elem|
看起来像这样:
我只是想绕过这个警察。它告诉我要修复的内容有什么想法吗?
默认情况下,Rubocop 希望您将这两个变量命名为 acc
和 elem
而不是 total
和 tmp_val
。你可以自己配置它想要的变量rubycop.yml。默认设置如下:
Style/SingleLineBlockParams:
Methods:
- reduce:
- acc
- elem
- inject:
- acc
- elem
Rubocop 这个有点太死板了。
它应该只是检查第二个参数没有被称为 mem
或 acc
恕我直言。
只需使用 :
total_cost = tmp_totals.inject(0) { |acc, elem| acc + elem }
或
total_cost = tmp_totals.inject(0, :+)
Rubocop 不会抱怨,对于空数组,您将得到 0 而不是 nil。
如果您不确定 rubocop 抱怨什么,您可以:
确保您的代码已提交
使用
rubocop -a script.rb
检查代码是否仍然有效
看看有什么区别