Railsで個人的によく使うgemをまとめる
まとめ
Rails newをした時、毎回必要なgemってなんだっけと考えるのが面倒なので、「ほぼ必須」から「入れると幸せになるかもしれない」ものを列挙していく。ちなみに、
- デフォルトで入ってるやつは列挙しない。
- ほぼバックエンド専用でRailsを使う機会が多いため、フロントエンド系はあまり列挙しない。
- 調べていくうちに良さそうだなと思ったものも列挙。
おすすめのgemがあれば是非コメ[ントで教えていください。
今回紹介するもの一覧
ほぼ必須
よく使う
使ったことないけど、良さげなもの
雑解説
rspec-rails, factory-bot
ほぼ脳死で入れていい気がする。rspec は色々派生系があるけど、とりあえず上記のものを入れている。
rubocop
コードフォーマッター。rubocop自体に色々派生系があるのと、他にもrubyのコードフォーマッターとしてはrufoやprettierなどがある。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のベストプラクティスに則っているかをチェックしてくれるらしい。
参考資料
Discussion
知らないgemがいくつかありました。ありがとうございます。本筋ではなく恐縮ですが、本文内で「devise」が「device」となってしまっている部分がいくつかあるようです!
ご指摘ありがとうございます!修正しました。