1ヶ月でWebデザイン・プログラミングスキルをオーダーメイドのカリキュラムで学べるスクール、それがWebCamp。

子供の想像力を伸ばしアイデアを形にする小学生向けプログラミング教室「プロスタキッズ」

Rails初心者におすすめなRubyGemsを7個厳選してみた

Webサービスについて話し合っている様子
Pocket

GemはRuby開発者なら誰もが一度は使ったことがある、ライブラリのパッケージです。実は、Rubyのフレームワークとして有名なRuby on Railsも、それ自体がGem形式でパッケージされたライブラリです。本来であれば長くて複雑なプログラムを組まなければならない場面でも、Gemを利用することで初心者でも簡単に、ログイン機能や検索機能、ページネーション、管理画面、さらにはクローラーまで作ることができます。

使い方は、開発しているアプリの直下にあるGemfileを書き換えてターミナルでbundle installするだけ。

アプリ名/Gemfile

ターミナル

このまとめでは、Ruby・Rails初心者であれば是非利用しておきたい、非常に便利なGemを機能別にご紹介します。挙げ始めるとキリがないので使う場面が多いであろう7個のGemを厳選しています。これからWebアプリケーションを開発しようとしようと考えている方はGemを活用して効率的に開発を進めてください。尚、この記事では「こんなGemがある」ということを知ってもらう趣旨で書いているため、個別の使い方に関しては具体的に解説はしていません。では、いきます。

ログイン機能「Devise」

ログイン機能はWebサイトを構築する上で多く用いられますが、初心者が一から作るとなると労力がかかります。Deviseはそんなログイン機能を簡単に取り入れられるGemで、ログイン機能のあるRailsのサイトの多くが利用しています。ログインしているかどうかなどによって簡単にWebサイトの見せ方や挙動を変更することが可能です。新規会員登録画面やログイン画面なども容易に作成できます。公式サイトはこちら

検索機能「Ransak」

ransakは検索機能を実装するのに利用されるGemです。特定のカラムにhogeという文字を含む(一致する)レコードだけ取得、特定のカラムの数字が1000以上、2000以下のレコードのみ取得、などといったことが簡単に実装できます。複数カラムを検索対象にしたり、複数条件のand検索やor検索することもできます。また、検索結果のソートの切り替えも可能です。公式サイトはこちら

ページネーション「Kaminari」

一見単純ですが、普通に実装しようとすると結構手こずるページネーション。Kaminariを使うと、なんとControllerファイルに1行、Viewファイルに1行で基本的なページネーションをつけることができます。一ページに表示するレコード数や現在のページから横にいくつ分の数字を表示するかなども簡単に調節可能です。また、「Next」「Prev」「First」「Last」のように英語表記になっていますがi18nの設定ファイルをいじることで日本語表記に変えられます。デフォルトではただ数字が表示されるだけのデザインですが、コマンド1つでBootstrapのデザインを適用できる点も魅力です。公式サイトはこちら

管理画面「Active Admin」

管理画面はユーザーが直接見ることがないため、エンジニアの足りていない会社では後回しになりがちです。とはいえ、今時ほとんどのWebアプリケーションでは管理画面があります。社員がほぼ毎日見るようになる管理画面が使いづらいのもかなり痛手なので、適当に作るわけにもいきません。そんな時Active Adminを利用すれば、デザインや機能面において一定以上のクオリティの管理画面を実装することができます。他にもいくつか管理画面のGemはありますが、一番バランスが取れていて評判の良いGemがActive Adminです。尚、先ほど説明したDeviseが入っていない場合は入れる必要があります。公式サイトはこちら

メールの送信確認「MailCatcher」

ローカル環境で開発を行っていて厄介なのが、メールの送信がしっかりできているかの確認です。多くのWebサイトでお問い合わせフォームがあると思います。お問い合わせがあった際に、お問い合わせがあったことを自分たち側にメールで知らせる、また相手に対してもお問い合わせを受け付けたことをメールで通知するのが一般的です。しかし、ローカルで開発をしていると、メールを送信できているかを確認することができません。MailCatcherはそんな時に役立つGemで、本物のメーラーみたいなWebの画面を通して、ローカルでのメールの送信確認をすることができます。公式サイトはこちら

画像ファイルアップロード「Paperclip」

画像アップロードを伴うアプリケーションは多いと思います。Paperclipでは画像のアップロード機能を手軽に実装することができます。画像をリサイズしたり、画像の保存先を指定したり、複数の画像アップロードをしたり、といった必要な機能はほとんど揃っています。同じくファイルアップロードのgemとしてCarrierWaveと比較されることが多いですが、初心者が手早く機能をつける場合には、Paperclipがおすすめです。公式サイトはこちら

クローラー「Anemone」

Anemoneに関しては上記のGemと比較すると使用頻度は落ちるかもしれません。クローラーとは、自動的にWebページのリンクをたどって情報収集するシステムを指しており、代表的な例としてGoogleの検索エンジンにも用いられています。巡回するWebページのURLとそのページ内のどの情報を取得したいかを指定し、それを繰り返すことで様々なページの情報を収集していきます。一見難しい技術ですが、AnemoneというGemを利用すると、クローリングするサイトごとに個別のカスタマイズをする必要はあるものの、HTMLとCSSを知っていれば比較的容易にクローラーを実装することが可能です。ユーザーエージェントやアクセス間隔の設定もオプションを用いることで容易に実現可能です。公式サイトはこちら

知らないGemがあったら是非使ってみましょう!

上記でご説明したのはいずれも「超」がつくほど有名なGemばかりです。Gemは複雑な機能を簡単に実装できる、Rails初心者の強い味方です。もし知らないGemがあった場合は、積極的に取り入れて効率的に開発を行いましょう!

投稿者:プロスタ編集部

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

プログラミングで挫折しそうなら、現役エンジニアにマンツーマンで相談してみませんか?オンラインのプログラミングスクール「TechAcademy」のメンターが対応。

この記事が気に入ったら
いいね!しよう

プロスタの最新情報をお届けします

あわせて読みたい

関連記事

ページ上部へ戻る