[英]Rubocop. Align the elements of a hash literal if they span more than one line
[英]Ruby Rubocop. MutableConstant - not detecting freeze
我编写了一个lib / animal.rb,其中包含多个参数列表,我想在控制器中引用该列表并将其添加到我的参数列表中。 之所以这样做,是因为我在多个位置使用了此列表,并且不想在代码中堆满大量对该库的引用。
调节器
ANIMAL_TYPE_INPUT_PARAMS = *Animals::ANIMAL_TYPE_PARAMS.freeze
....
def familar_params
params.permit(ANIMAL_TYPE_INPUT_PARAMS, OTHER_PARAM_LIST....)
end
lib / animal.rb
module Animal
# param lists
ANIMAL_TYPE_PARAMS = [
:animal_has_fur, :animal_id, :animal_weight
].freeze
end
从功能上来说,它工作得很好,但是我看到一个奇怪的rubocop错误。 我宁愿不禁用此部分的MutableConstant(禁用rubocop通常是您需要付费的创可贴)。
Rubocop错误
app/controllers/api/v1/example_controller.rb:55:24: C: Freeze mutable objects assigned to constants.
ANIMAL_TYPE_INPUT_PARAMS = *Animals::ANIMAL_TYPE_PARAMS.freeze
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
我调查了这个问题: Ruby rubocop:如何冻结由splat生成的数组常量但是我的数组已经是数组,所以我觉得它不适用于我/不必调用to_a。
正如@drenmi所建议的,这是rubocop的较旧版本,给了我这个错误。 一旦我升级到0.46.0,该错误就不再存在。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.