这是我的代码,这是我的错误。我认为这里不需要更多描述:
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
答案 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