- 公開日: 2020年10月17日
【初心者必見】Ruby on Railsで使う便利なgem5選について解説
「gem(ジェム)って沢山あるけど、結局どれを使えば良いか分からない」
「実際の開発現場でし使用されているgemを知りたい」
Ruby on Rails(以下Rails)を学んでいる方の中には、このような疑問を持っている方がいるかと思います。Railsを使ってWebアプリケーションを開発する際にgemは非常に便利なツールです。
そこで今回はおすすめのgemやgemを使う際のポイントについて、図や写真を使い分かりやすく解説していきます。ぜひ参考にしてみてください。
gemとは
まずgemについて簡単に整理しておきましょう。
Ruby on Railsにおけるgemは主に「パッケージ」という意味で使われます。パッケージとは便利な機能がまとまったものです。
Webアプリケーションにユーザー登録やログイン機能などいわゆるユーザー認証機能を実装したい場合を考えてみましょう。これらを一からコードを書いて作っていくのは非常に時間がかかる作業といえます。
そのため実際の開発現場ではgemというパッケージを使って、ユーザー認証機能を実装することが多いです。gemはインストールするだけですぐに使えるので、効率的に開発を進める場合に必須のツールです。
gemのメリットやデメリット、ターミナルを使ったコマンド操作などより詳しく知りたい方は下記記事を参考にしてくださいね。
gemを使う際のポイント
この章ではgemを使う際のポイントについて解説していきます。
ポイント① 公式ドキュメントをしっかりと読もう
gemを使う際は公式ドキュメントを必ず読みましょう。ほとんどのgemはGitHubと呼ばれるサイトで管理されており、インストールの方法や使い方などがドキュメントとしてまとめられています。
画像:公式ドキュメントの例
gemを使用する際にターミナルに入力するコマンドを覚える必要はありません。なぜならgemのアップデートなど仕様変更により、その都度変わる可能性があるからです。そのため使用するgemの公式ドキュメントをしっかりと読むことをおすすめします。
またGitHub上に公開されているドキュメントのほとんどが英語で書かれています。英語に苦手意識がある方もいるかと思いますが、翻訳ツールを使えば問題ありません。
翻訳ツールの中で特におすすめなのがDeeplです。日本語変換の精度が高く、無料で使用できるのでぜひ積極的に活用していきましょう。
画像:Deepl
ポイント② gemの管理は、gem.fileで行おう
プログラミング初心者の方の中には、いざgemを使おうと思っても何からすれば分からないと感じる人もいるでしょう。gemをインストールする場合、まずはgem.fileを開きます。
画像:gemfile
gem.fileはこれまでインストールしてきたgemの一覧を確認できます。中には自分でインストールした覚えが無いものも見つかるでしょう。実は開発環境を作る段階で、自動でRailsに必要なgemがインストールされるようになっています。
またgem.fileにインストールしたいgemを書く場合、どの環境で使用するのか意識しましょう。Webアプリケーションを開発するステージは、テスト環境や開発環境、本番環境などに分類されます。
例えば下画像のように「group :development, :test do」の下に書いているgemは本番環境では使わず、テスト環境でのみ使用するという意味になります。
画像:テスト環境で使用するgemの例
gem.file内で記載する場所が違うと、インストールしたのに使えない場合があるのでgemをインストールする際は、どの環境で使用するのか考えてみると良いかもしれません
gemを選ぶ基準
使用するgemがどのくらいの人に使われていて、どの程度の評価がされているのか気になる方もいるのではないでしょうか?この章ではgemを選ぶ際の基準について解説していきます。
基準① GitHubのStar
1つ目はGitHubのStar数です。GitHubはgemがユーザーからどのくらい評価されているのか見れます。例えば次の章で紹介する「devise」というgemを見てみましょう。
画像の枠線部がユーザーがお気に入りにした数です。deviseの場合、2万人以上のユーザーが高評価としていることが分かります。
Githubは世界中のユーザーが使用するサービスなので、Star数はgemを選ぶ際に信頼できる基準と言えるでしょう。ぜひ皆さんもGithubを見る際はStar数を参考にしてみてはいかがでしょうか。
基準② BestGems
2つ目はBestGemsです。BestGemsはgemのダウンロード数を基に作成したランキングを公開しているWebサイトとなります。
GitHubと同様にBestGemsも世界中のユーザーのダウンロード数を基にしたデータなので非常に信頼性が高いと言えます。ランキング上位のものがどのような機能のgemなのか自分で調べてみると勉強になるかもしれません。
おすすめのgem5選
この章では実際の開発現場でも使用されているgem5選を紹介していきます。どれもRailsでWebアプリケーションを開発する上で必要なものばかりですので、この機会にどのようなものなのか理解すると今後役立つと思います。
おすすめ① devise
1つ目は「devise」です。deviseを使うと多くのWebアプリケーションで見かけるログイン機能を簡単に実装することが可能です。
ログイン機能とは下の画像のようにユーザーがメールアドレスやパスワードを登録することを指します。
またユーザーがパスワードを忘れた場合、パスワードをリセットするなど複雑な機能もdeviseをインストールするだけで使えるようになります。
deviseをカスタマイズするとFacebookやTwitterなどのSNSアカウントを使ってログインすることも可能です。このような機能を1から実装するとなると非常に時間がかかるため、効率的に開発を進めたい企業などでdeviseは使われています。
おすすめ② prybyebug
2つ目は「prybeybug(プライバイバグ)」で、デバッグする際に役立つgemです。ちなみに「デバッグ」とはプログラム内で発生したエラーを修正することを指します。
プログラミングをする際にエラーは付き物で、どの段階まで動作しているのか把握することが重要です。エラー箇所を見つけるのに「prybyebug」は非常に役立ちます。
下画像のようにソースコード内に「binding.pry」と書くと、その後のコードの処理は行われません。そのためbinding.pryと書いたコードでどのようなパラメータ(情報)が渡ってきているのか把握することができます。
画像:binding.pry挿入画面
画像:ターミナル画面
試しにターミナルで「params」と入力してみると、下画像のような結果が返ってきます。このようにprybyebugを使えば仮にエラーが起きた場合に、どこが不具合の箇所かすぐに把握できるのです。
画像:パラメータの例
おすすめ③ hamlit
3つ目は「hamlit」です。hamlitとは「HTML Abstraction Markup Language」の略で、Rubyで使用できるテンプレートエンジンです。テンプレートエンジンとはHTMLのコードを書き換え画面に出力するものを指し、hamlitの他にもERBやSlimなどがあります。
hamiitを使えば複雑なコードも省略して簡潔に書けます。例えば一般的なHTMLとHamlitを使った書き方を比べてみましょう。
HTMLで書いた場合
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div class ="example_div">
<h1 class="example_h1">h1タグ</h1>
<p class ="example_p">pタグ</p>
</div>
</body>
</html>
hamlで書いた場合
!!!
%html{:lang => "ja"}
%head
%meta{:content => "text/html; charset=UTF-8", "http-equiv" => "Content-Type"}/
%meta{:charset => "UTF-8"}/
%meta{:content => "width=device-width, initial-scale=1.0", :name => "viewport"}/
%title Document
%body
.example_div
%h1.example_h1 h1タグ
%p.example_p pタグ
このようにコードを省略することで効率的に開発を進めることができます。特にWebアプリケーションの開発速度が重視されるため、hamlitが採用されることが多いです。
hamlitの詳しい使い方を知りたい方は下記記事を参考にしてみてくださいね。
参考記事:hamliitとは
おすすめ④ Faker
4つ目は「Faker」です。このgemはダミーデータを作りたい場合に役立ちます。
例えばユーザーが記事を投稿できるアプリがあり、開発者はリリース前に記事が1000件投稿された場合、バグが起きないか確認したいとします。確認するために開発者が1000件手動でダミーの記事を作成することができますが、非常に大変な作業です。
しかしFakerというgemを使えば簡単にダミーデータを作成できます。文章だけに限らず、ユーザーやEメールアドレスなど様々なダミーデータを簡単に作成することが可能です。
おすすめ⑤ Postgresql
5つ目は「Postgresql」です。PostgresqlはWebアプリケーションに必須であるデータベースを管理するgemを言います。
データベースはTwitterやInstagramなどのWebアプリケーションをイメージすれば理解しやすいでしょう。上記のようなアプリケーションでは、年齢や性別などのユーザー情報を登録したり、記事や画像を投稿することが可能です。
このような情報はデータベースという場所に保管されます。そしてデータベースは情報を保管するだけでなく、取り出したり削除もできるのです。
Railsのデータベースは初期設定で「SQlite」と言われるものになっていますが、実際の開発現場では「Postgresql」が圧倒的に使われています。
\Rubyでのサービス開発スキルが身に付く/
まとめ
ここまでgemを使う際のポイントやおすすめのgemについて解説してきました。gemを使えば複雑な機能の実装もインストールするだけで使えるようになるので、ぜひ皆さんも積極的に使ってみてくださいね。
最後に本記事の内容をまとめておきますので、復習にお役立てください。
[1]gemは必要な機能が予め揃ったもの
[2]gemを使えば効率的に開発を進めることができる
[3]gemを選ぶ際はGitHubかBestGemsを参考にする
- この記事を書いた人
- ヤマモト