mofflog

---人生の3%ぐらい役立つブログ---

gemとは?Ruby on Railsでよく使う・覚えておきたいgem

f:id:moffle8:20190518192948p:plain

こんにちはもっふるでs

 

Webアプリケーション(SNSや質問箱など)を作る際はいくつかのありますが、自分はよくプログラミング言語RubyのフレームワークであるRuby on Rails(以下Rails)を用いることが多いです。はじめて作成したウェブアプリケーションもこのRailsを用いました。

 

理由としては初心者でも扱いやすく、アプリケーションを作成する際の骨組みが大方できあがっている点と、gemというライブラリが充実している点です。gemにはたくさんの種類があり、このgemがあるおかげで開発作業も大分スムーズに行うことができます。

 

gemとは?

もう少し詳しく説明すると例えばログイン機能をつけたいとか、検索機能を付けたいとか追加で機能を増やしたいときにコマンドを追加するだけで機能を拡充させることができます。

 

gemを管理してあファイルはGemfileGemfile.lockという二種類のフォルダで、基本的には前者のGemfileの方を使います。ディレクトリでいうと自分のアプリケーションの名前/Gemfile(Gemfile.lock)になります。

 

実際にGemfileのファイルと開いてみるとgem '名前' というのがズラーっと書かれていると思います。そこに記載されているものが現在デフォルトで導入されているgemの種類になります。gemの追加と削除の方法は簡単でこのGemfile内のgem'~' を新しく追加したり既存のものを削除したりして、コマンドラインでbundle installすれば無事反映されます。

 

そんな便利なgemですがどんな機能かわからず使っていたり、はじめのうちはどんなgemを使ったらいいかわからないということもあると思うので今回はよく使うgem・覚えておきたいgemを初心者の方でもなるべくわかりやすく紹介していきます。チェケラ

 

よく使う・覚えておきたいgem

f:id:moffle8:20190711222127j:plain

※今回はアプリの機能についてなので詳しい使い方・導入方法などは割愛します<(_ _)>スミマセン

 

devise

これはログイン機能を用いたいときに使用するgemです。これがあることによりDとメールアドレスで登録、ログインすることが可能になります。Twitterのようなアカウント間でコミュニケーションをとるようなアプリでは必須ですね。

 

omniauth

ソーシャルアカウントと連携したログインが行える機能で、よく上のdeviseと一緒に使われます。例えばomniauth-facebook、omniauth-twitterというgemがありこれは既に存在しているSNSのアカウントを自分のWebサービスのログインで用いることができるという優れもです。

 

whenever

wheneverはcronという自動実行ファイルを編集することができるgemです。簡単にいうと「毎朝七時になったらページを更新して」みたいな定期実行の設定ができるgemになります。(あくまで設定のみでプログラムは別途で書く必要があります)

 

nokogiri

スクレイピングというほかのサイトから一部の情報(htmlのimgとかtitle要素)を収集できるgem。スクレイピングは使う際にルールが必要ですがうまく使えばとても便利なgemのひとつです。

 

ransack

(高機能な)検索機能を使えるようになるgem。これを導入すると単なるキーワード検索だけでなく、性別や生年月日など検索項目も設定することもできます。

 

friendly-id

URLルーティング(www.〇〇.com/home/aboutみたいな)の名前の設定ができるgem。本来デフォルトの状態でページを追加すると”home/1”、”home/2”みたいに数字で表記されてしまいますが、これを用いることにより”home/info”、”home/お問い合わせ”のようにルーティングの名前を自由に変更することができます。

 

active admin

CRUD管理(Create,Read,Update,Delete)というアプリケーションを管理する際に欠かせない管理画面を自動で作成してくれる便利なgem。この確認画面からデータベースの確認や管理などが行え、画面のカスタマイズ性も高いです。似たようなgemにrails adminなどがあります。

 

cancancan

①のdeviseとセットでよく使われるgemでこれは登録されたユーザーに権限を付与・管理が行えるgemです。例えばサイト内で小さなコミュニティを作りそこの管理人をさせたい場合などに使えます。

 

meta-tags

htmlの<head>...</head>で囲まれたヘッダーのメタ情報を管理できるgem。これによりmeta descriptionやmeta keywordsなどサイト運営に重要なSEO対策が簡単にわかりやすく行うことができます。

 

i18n

サイト・アプリケーションの多言語化に用いるgem。各種の言語ファイルが用意されていて様々な言語を翻訳してくれるのでサイトの国際化なども簡単に行うことができます。

 

will paginate

ブログなどでよくみられるページ送り(ページネーション)機能を用いることができるgem。記事などコンテンツが一つのページでは収まりきらないときに有効です。似たようなgemにkaminariがあり、こっちのほうが便利という人もいます。

 

rack-attack

アプリケーションのセキュリティ対策では欠かせないgem。攻撃を行ってくるIPを制限したり、管理画面にアクセス可能なあIPなども指定することができます。

 

まとめ

今回紹介するのは以上になります。今回挙げたものはほんの一部でgemにはたくさんの種類があります。同じような機能でもさまざまな種類のものがあるので、自分で実際使ってみて気に入ったものを使ってみてください。