Rubocopは私に次の犯罪Rubocop respond_to_missingを解決するには?犯罪
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
Iは、here
def respond_to_missing?(method_name, include_private=false)
(name =~ /(.+)\=/) || has_index?(name) || super
end
から例を照準以下のコードでそれを修正しようとしましたしかし、今Rubocopは私に次の犯行を与える:
lib/daru/vector.rb:1182:5: C: Style/MethodMissing: When using method_missing, fall back on super.
def method_missing(name, *args, &block) ...
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
私は何が間違っているのか分からないようです。あなたが見ることができるように、私はelseブロックのsuperに落ちています。
コメント '#のrubocopを入れて:あなたは
super
に渡している引数はあなたが受け取ったものと同じであるとして、あなたは単に引数を削除することができ犯罪と'#のrubocopと行の前にスタイル/ MethodMissing'を無効にします。スタイル/ MethodMissing'を直後に有効にしてください。 Rubocopは単なる警官であり、間違いを犯す可能性があります。 – mudasobwaところで、受け取ったのと同じ引数を渡したいだけなら、引数リストなしで 'super'を呼び出すことができます。これはあなたの問題とは関係がありません。Rubocopは単に 'super'呼び出しにつながるパスがあるのを見ることができないようです(覚えておいて、 Haltingの問題、そしてRubyは、ブートするために静的に容易に分析できるようには正確には設計されていません)。または、おそらく、実際には*シャットダウンします。 –