Ruby linter in Atomを使用していますが、一部の行では次の警告が表示されます。
(...) interpreted as grouped expression
この警告を受け取る行の例は次のとおりです。
elsif not (params[:vacancy].nil? or params[:vacancy]['company_id'].nil? or params[:vacancy]['company_id'] == "0" )
警告を消すために、その行をどのように改善する必要がありますか?
警告は
(...) interpreted as grouped expression
そしてそれはまさにそれが言うことを意味します:Rubyでは、括弧は式のグループ化、パラメータリスト、引数リストの3つの目的に使用できます。この警告は、Rubyが引数リストが必要だと考えているが、代わりにグループ化された式を書き込んだ場合に発行されます。最も一般的な原因は、メッセージの名前とメッセージ送信の引数リストの間の空白です。この:
foo.bar (1, 2)
これは、notメッセージ送信の引数リストとして解釈されますが、グループ化された式であり、この特定の場合はSyntaxError
です。
あなたの特定のケースでは、警告は誤検知のようです。
not
と括弧の間のスペースを削除してみてください
私が受け取る警告は、MRI Ruby自体(オプション-wc
)、そして私はあなたがそこにタイプミスを持っていると思います。私が受け取るメッセージには、「接地」という言葉はありませんが、「グループ化」されています。
Rubyの括弧は、式をグループ化するため、または関数またはメソッドの引数リストをマークするために、2つの目的のいずれかに使用できます。
そのエラーメッセージが言っているのは、これら2つのオプションのうち、Rubyは式のように扱っているということです。Rubyで定義できることに注意してください。 「not」と呼ばれるメソッド。
そして、この特定のケースでは、Rubyが括弧をどのように解釈するかは問題ではありません。
メッセージを取り除く1つの方法は、「not(」の間のスペースを削除することです。これが厄介だと思うなら、私はあなたに同意します。