「Use hash rockets syntax」が大量に出てしまう事態
Rubocopを導入し、ターミナルで「rubocop」を実行すると下記のように
**「Use hash rockets syntax」**の指摘が大量に出てきてしまいました。
ググってもあまり記事は出てきませんでしたが、
「hash rockets syntax」は下記の記事でも書いている通り、
Rubyのハッシュの記法まとめ
user = { :first_name => "Yusuke", :last_name => "Higaki" }
⇒こういった、**「key => value 」**の形式のハッシュのことです。
Rubocop実行時に出てしまった指摘
$ rubocop
Inspecting 87 files
....CCCCC.CC....CC.CC..........C.CC.CCCCCC.C...C..CC......C.....C.C.........CCCCC.CCCCC
Offenses:
app/controllers/communities_controller.rb:3:40: C: Style/HashSyntax: Use hash rockets syntax.
before_action :validate_community, only: %i[edit update destroy]
^^^^^
app/controllers/communities_controller.rb:15:39: C: Style/HashSyntax: Use hash rockets syntax.
@belongings = Belonging.where(community_id: @community.id)
^^^^^^^^^^^^^
app/controllers/communities_controller.rb:21:31: C: Style/HashSyntax: Use hash rockets syntax.
@posts = @posts.where(community_id: @community.id)
^^^^^^^^^^^^^
app/controllers/communities_controller.rb:24:44: C: Style/HashSyntax: Use hash rockets syntax.
@belonging = Belonging.find_by(community_id: @community.id, user_id: current_user.id)
(以下略)
結論、下記を.rubocop.yml
に追記したら、このタイプの指摘は出なくなりました。
.rubocop.yml
HashSyntax:
EnforcedStyle: ruby19
⇒これは、**「ハッシュの記法はロケット記法ではなくruby1.9のハッシュ記法を使いますよ」**ということを表します。
**「ruby1.9のハッシュ記法」とは、
今回のrubocop実行時に指摘があった箇所に記載されているように、
ロケット記法を使わず、「key: value」**の形でハッシュを記載する形式のことです。
そもそもruby1.9のハッシュ記法で初めから指摘を受けてないような、もっと根本的な解決策があるかもしれません。
ご存知の方は、是非ご教示いただけますと幸いです。