Railsアプリで実際に使用したオススメgem
いくつかRailsベースのサービスを運営しています。
そこで実際に使用しているgemを紹介したいと思います。
よく使うのもなので、情報も多く使いやすいものばかりです。
サービスの紹介
今回紹介するのは、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の動作確認からですよ。