鲁博克犯了以下罪行
lib/daru/vector.rb:1182:5: C: Style/MethodMissing: When using method_missing, define respond_to_missing? and fall back on super.
def method_missing(name, *args, &block) ...
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^缺少的方法定义为:
def method_missing(name, *args, &block)
if name =~ /(.+)\=/
self[$1.to_sym] = args[0]
elsif has_index?(name)
self[name]
else
super(name, *args, &block)
end
end我试着用下面的代码修复它,从这里中看到一个示例
def respond_to_missing?(method_name, include_private=false)
(name =~ /(.+)\=/) || has_index?(name) || super
end但现在鲁博克对我犯了以下罪行:
lib/daru/vector.rb:1182:5: C: Style/MethodMissing: When using method_missing, fall back on super.
def method_missing(name, *args, &block) ...
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^我好像搞不清到底是怎么回事。正如你所看到的,我在另一个街区里又回到了超级超市。
发布于 2016-07-27 15:46:00
Rubocop希望不带参数地调用super。由于要传递给super的参数与收到的参数相同,因此可以简单地删除参数:
def method_missing(name, *args, &block)
if name =~ /(.+)\=/
self[$1.to_sym] = args[0]
elsif has_index?(name)
self[name]
else
super
end
end发布于 2018-07-16 23:51:39
也许你应该试试def respond_to_missing?(name, include_private=false)?
https://stackoverflow.com/questions/38605669
复制相似问题