📑

Railsで個人的によく使うgemをまとめる

2021/02/20に公開
2

まとめ

Rails newをした時、毎回必要なgemってなんだっけと考えるのが面倒なので、「ほぼ必須」から「入れると幸せになるかもしれない」ものを列挙していく。ちなみに、

  • デフォルトで入ってるやつは列挙しない。
  • ほぼバックエンド専用でRailsを使う機会が多いため、フロントエンド系はあまり列挙しない。
  • 調べていくうちに良さそうだなと思ったものも列挙。

おすすめのgemがあれば是非コメ[ントで教えていください。

今回紹介するもの一覧

ほぼ必須

よく使う

使ったことないけど、良さげなもの

雑解説

rspec-rails, factory-bot

ほぼ脳死で入れていい気がする。rspec は色々派生系があるけど、とりあえず上記のものを入れている。

rubocop

コードフォーマッター。rubocop自体に色々派生系があるのと、他にもrubyのコードフォーマッターとしてはrufoprettierなどがある。prettierはインデントの付け方とかが JS っぽくなるのが微妙だなと思った。

better_errors, binding_of_caller

エラー時の赤い画面がいい感じになる。

bullet

N+1問題を検知してくれる。

devise

認証系の代表格。同じようなことができるsorceryといものがある。こちらの記事によると

deviseが「generate したらログインスパーン!!よっしゃ認証できんで!!!!」なのに対して
sorceryは「generateしたら、サブモジュールやら追加したるし、処理は自分で書くんやで」
と言ったイメージ。
個人的な感想としては
高機能の認証を手っ取り早く作りたいなら「devise」
少し面倒臭さは感じても、ある程度はロジックを自分で書いていきたい方は「sorcery」
を使用すればいいんじゃないかなと思います。
らしい。ちなみに自分はdeviseしか使ったことない。

cancancan

権限管理をしやすく(?)してくれる。deviseと一緒に使うことが多いかも。

activeadmin

管理画面を簡単に作れる。デザインは二の次で、とりあえず管理画面が欲しいという場合に大活躍する。

annotate

app/models/**.rbにどういうカラム、インデックスがあるか自動で出力してくれる。 schema.rbを見にいく手間を省ける、かもしれない。

fast_blank

String#blank?メソッドが2倍くらい早くなるらしい(参照)

rails_best_practices

railsのベストプラクティスに則っているかをチェックしてくれるらしい。

参考資料

https://techracho.bpsinc.jp/hachi8833/2017_07_12/42497
https://zenn.dev/sesere/articles/c690b064c5e32b

Discussion

catnosecatnose

知らないgemがいくつかありました。ありがとうございます。本筋ではなく恐縮ですが、本文内で「devise」が「device」となってしまっている部分がいくつかあるようです!