【Rubocop】Use 2 (not 1) spaces for indentation.を解決する


Rubocopを導入しエラーを解決していく中で、下記のエラーが結構な数出てました。
「Use 2 (not 1) spaces for indentation.」

調べても日本語の解説記事がほとんどなかったので、備忘録として残してみます。
間違っている点等あれば、ご指摘いただければと思います。

ちなみに、Rubocopの自動修正は効かなかった\(^o^)/

環境

MacOS Catalina
Rails 6.0.3.2
Ruby 2.6.3

Use 2 (not 1) spaces for indentation.とは

Google翻訳にかけてみると、下記のような感じ。
「インデントには2つ(1つではなく)のスペースを使用します。」
つまり、インデントを2つ空けろってことかな?

該当のエラー行

app/controllers/messages_controller.rb:2:1: C: Use 2 (not 1) spaces for indentation.
    before_action :set_room, only: [:create, :destroy]
^
app/controllers/messages_controller.rb:6:2: C: Use 2 (not 1) spaces for indentation.
        if Entry.where(user_id: current_user.id, room_id: @room.id)
 ^
app/controllers/messages_controller.rb:7:3: C: Use 2 (not 1) spaces for indentation.
            @message = Message.create(message_params)
  ^

パッと見問題なさそうに見えるんだけど、スペースが1つ空いていると言えば空いてるなぁ。
もっと他にも同じような行あるんだけどなぁ。。。

例えば、下記の行では何故か上の行だけ怒られてる。

    before_action :set_room, only: [:create, :destroy]
    before_action :set_message, only: [:destroy]

謎 of 謎。

修正してみる

before

    before_action :set_room, only: [:create, :destroy]

after

    before_action :set_room, only: [:create,  :destroy]

直してみるとエラーの数が減った・・・違和感あるけどこれ何かおかしくね??
元に戻してみた結果→エラーが更に減る(笑)

でもエラーが減ったのは該当行ではなく別のエラーみたい。
うーんなぜ減ったのかも分からんし何が正解なんだ。。。

よくよく見るとエラーが出ているのが全て同じファイル内なので、
このファイル特有の問題がなにかあると予想。

解決できた

結論は、「エラーが出ているファイルだけタブでインデントしていた」です。
VSCODEでスペースインデントに変更することで、エラーが消えました。

なぜこのファイルだけ違ったのかは分からんが・・・。

終わりに

凡ミスでしたが、エラーメッセージに惑わされてなかなか生活にたどり着けませんでした。
同じように悩んでいる方の役に立てば幸いです!