Railsアプリで実際に使用したオススメgem

LINEで送る
Pocket

いくつかRailsベースのサービスを運営しています。
そこで実際に使用しているgemを紹介したいと思います。
よく使うのもなので、情報も多く使いやすいものばかりです。

サービスの紹介

今回紹介するのは、Artue[アーチュ]というサービスです。
みんなでコメントする展覧会口コミサイトです。
気になる展覧会のことや展覧会の感想を見てるとアートがますます楽しくなりますよ。

artue

Rails

  • rails
  • mysql2
  • sass-rails
  • uglifier
  • coffee-rails
  • jquery-rails
  • jbuilder
  • therubyracer

rails newするとデフォルトで入るやつです。
ArtueではRails4を使用しています。
sassもcoffeescriptもjbuilderもしっかり活用しています。
cssやjavascriptを直接書くことはほぼないですね。

テンプレート、cssフレームワーク

  • jquery-ui-rails
  • haml-rails
  • erb2haml
  • bootstrap-sass
  • font-awesome-rails
  • compass-rails

テンプレートエンジンにはhamlを使用しています。
htmlに比べて、短くエレガントに、かつ間違い(タグの閉じ忘れとか)が少なくて快適です。
今までhtmlで書いていたものがあれば、erb2hamlで一気に置き換えてしましましょう。

cssフレームワークはおなじみbootstrapを使用しています。

Turbolinks

  • turbolinks
  • jquery-turbolinks

rails3から導入された悪名高い(?)Turbolinksですが、ばりばり使用しています。
あったほうがベターですが、javascriptの書き方に工夫が必要なのですでにjavascriptがごりごり動いているところにはつらいかもしれません。
bootstrapはjquery-turbolinksを入れておけばとりあえず動きます。

Turbolinksについては以下の記事も書きましたので、参考に。

infinite scrollとRails4のTurbolinks
Turbolinksへの対応(Facebook,Twitter,はてブ,LINE)

ユーザ管理

  • devise
  • omniauth
  • omniauth-facebook
  • omniauth-twitter

認証機能はdeviseをつかえば簡単にできちゃいますね。
ほぼすべてのサービスに使用しています。
facebookやtwitterでの認証も使用したいので、omniauthを使ってdeviseと連携しています。
omniauthで使用できるプロバイダはgoogle、github、はてな、mixi、linkedin等たくさんありますので、サービスの性質に応じて選んでください。

画像関連

  • carrierwave
  • rmagick
  • lightbox2-rails

画像アップロードにはcarrierwave、加工にrmagickです。
表示はlightboxでエフェクト。

ページネーション

  • kaminari

jQueryプラグインの[Infinite Scroll]を使用して、Facebook風無限スクロールにしています。
infinite scrollとRails4のTurbolinks

フォーム関連

  • nested_form
  • select2-rails

neted_formは動的に子要素(has_manyの子モデル)を追加するのがすごく簡単になります。
select2はセレクトボックスに検索機能をつけてくれます。

ソーシャル機能

  • socialization
  • public_activity

socializationはいいね!やフォローの機能に使用します。

public_activityは通知機能に使用しています。
「○○さんがいいね!と言いました」のような。

SEO

  • meta-tags

metaタグを書くに便利なヘルパーです。
FacebookのOGPやTwitterカードの設定もできて、SEOだけでなくソーシャルメディア対策もばっちりです。

タグ

  • acts-as-taggable-on
  • jqcloud-rails

その他のユーティリティ

  • paper_trail : 編集履歴
  • impressionist : PV取得
  • paper_trail : 編集履歴
  • whenever : cron
  • rinku : テキスト内のURLに自動でリンク(アンカー)をつけてくれる
  • gon : railsとjavascript間での変数受け渡し

デプロイ

  • capistrano-rails
  • capistrano-rbenv
  • capistrano-passenger

Capistranoなしでのデプロイはありえないです。

開発環境

  • byebug
  • web-console
  • spring
  • dotenv-rails
  • bullet

最初の3つはデフォルト入っていますね。

dotenvはdatabase.yml内でパスワードの管理をしたくないので、開発環境では環境変数で指定しています。
production環境ではCapistranoのlinked_filesとして設定して、サーバに事前設置します。

bulletはN+1問題を通知してくれます。
とても便利ですが、ときどきうざいです・・・。

テスト

  • rspec-rails
  • factory_girl_rails
  • guard-rspec
  • spring-commands-rspec
  • faker
  • capybara
  • database_cleaner
  • launchy
  • selenium-webdriver
  • shoulda-matchers

RSpecでテストコードを書いて、FakerとFactoryGirlでテストデータを作って、Guardで監視+自動テストというお決まりパターンです。
ブラウザを使用したテストはCapybaraで。

RSpecによるテストについては「Everyday Rails – RSpecによるRailsテスト入門」がとてもよかったです。

実際にサービス、Artueをのぞいてどんな風につかわれているか確認してみてください。
まずはログインしてdeviseの動作確認からですよ。

LINEで送る
Pocket

コメントを残す