1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

実務では知らないとヤバイ!Railsで使われるGemを解説(基本から実務で使うもの、探し方まで解説)

Last updated at Posted at 2021-09-03

Gemとは

Gemはパッケージまたはパッケージ管理ツールです。
パッケージは便利な機能がまとまったものです。

例えばログイン機能や画像アップロードなどを実装したい時にGem中にインストールすると
効率的に実装したい機能を導入することができます。

Gemをインストールするときは

$ bundle install

でインストールできます。

bundlerとは

Bundlerはgemを管理してくれるツールです。bundlerもgemの1種です。
いろいろなgemを管理してくれます。

Gemfileの中身

このファイルにgemを置いてインストールしていきます。
環境によって必要なGemも変わってきます。


ruby '2.7.1'  #Rubyのバージョン ここでは2.7.1

#省略

group :development do   #開発環境

#省略

end

group :test do  #テスト環境

#省略

end


group :production do  #本番環境
     
	#省略

end

Gemの一覧を見るには

以下のコマンドをコマンドラインで実行すると見ることができます。

gem list

Gemの探し方

以下のコマンドでも探すことができます。

gem search <ライブラリ名> 

例えばrubocopのGemを探すなら

 % gem search rubocop

*** REMOTE GEMS ***

appbooster_rubocop_config (0.7)
armitage-rubocop (1.51.0.6)
#中略

みたいな感じで探すことができます。インストール済みのローカルのGemを探す場合はlをつけます。

% gem search -l <ライブラリ名> 

このサイトで探すこともできるみたいです。

Gemを導入する時にはどんなものがあるか

正直多すぎて全部伝えることはできないです。よく使いそうなものだけ紹介していきます。

  • テスト環境
    テストの効率向上や品質管理のためのものが多いです。
group :development, :test do
  gem 'rspec-rails' #rspecのGem
  gem 'factory_bot_rails' #factoryBotのgem
  gem 'faker' #ダミーデータを生成するためのGem
  gem 'capybara' #統合テストのためのGem
  gem 'database_cleaner' #テストデータベースをクリーンにするためのGem
  gem 'simplecov', require: false #コードのカバレッジを計測するためのGem
  gem "pry-byebug" # デバックするためのGem(binding.pry)
  gem "rubocop-rails" # Rubyコードのスタイルと品質を自動的に検査するためのGem
  gem "rubocop-rspec" #RSpecのテストに対してコードのスタイルと品質を検査するためのもの
end

⚫︎補足
コードカバレッジとはテストがこれくらい終わったという割合のことです。

その他のGemも載せておきます。

group :development do
  gem "annotate" #モデルやスキーマのファイルに注釈を追加
  gem "rails-erd" #データベーススキーマを可視化するためのGem
end

gem "jwt"   #JSON Web Token(JWT)を生成および検証するためのGem
gem "bcrypt"  #パスワードのハッシュ化を行うためのGem
gem 'dotenv-rails' #環境変数を管理するためのGemで.envファイルから環境変数を読み込みアプリ内で使えるようにする
gem 'prawn' #PDFドキュメントを生成するためのGem
gem "paranoia" #論理削除(soft delete)を実現するためのGem。データベースレコードを物理的に削除せずに、削除済みとしてマーク
gem "device"  #認証およびユーザー管理のためのGem
gem "devise_token_auth"  #Deviseをベースにして、トークンベースのAPI認証を実装するためのGem
gem 'kaminari'#ページネーション
gem 'ransack' #検索機能
gem 'bullet' #N+1クエリや冗長なデータベースクエリを検出し、最適化のヒントを提供するGem

などがあります。有名なのもさればそうでないのもあります。
参考にしてみてください。

この記事に実務のソースコードがあります。そこで実際に実務でどんなGemが使われているか
見てみてください。

参考資料

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?