ShadowingOuterLocalVariable rubocop错误

时间:2018-04-20 08:00:30

标签: ruby rubocop

这是我的代码,这是我的错误。我认为这里不需要更多描述:

someMethod
#terminal-error    (error on  object  "= ->(object) do "

lib/form_object/base.rb:18:30: W: Lint/ShadowingOuterLocalVariable: Shadowing outer local variable - object.
        need_validation = ->(object) do

1 个答案:

答案 0 :(得分:1)

来自您运行的lint的警告,它会检测您从外部范围隐藏(即隐藏)另一个局部变量的情况。

你有:

object        = self[attribute_name]

need_validation = ->(object) do
  (object.class < FormObject::Base || attribute_set.options[:validate]) && object.respond_to?(:valid?)
end

所以第一个变量object无法在lambda中引用,因为参数也称为object

您只需重命名lambda的参数即可删除此警告:

need_validation = ->(obj) do
  (obj.class < FormObject::Base || attribute_set.options[:validate]) && obj.respond_to?(:valid?)
end