2015TweetPocketいくつかRailsベースのサービスを運営しています。そこで実際に使用しているgemを紹介したいと思います。使うのもなので、情報も多く使いやすいものばかりです。今回紹介するのは、Artue[アーチュ]というサービスです。みんなでコメントする展覧会口コミサイトです。気になる展覧会のことや展覧会の感想を見てるとアートがますます楽しくなりますよ。newするとデフォルトで入るやつです。ArtueではRails4を使用しています。sassもcoffeescriptもjbuilderもしっかり活用しています。cssやjavascriptを直接書くことはほぼないですね。テンプレート、cssフレームワークjquery-ui-railshaml-railserb2hamlbootstrap-sassfont-awesome-railscompass-railsテンプレートエンジンにはhamlを使用しています。htmlに比べて、短くエレガントに、かつ間違い(タグの閉じ忘れとか)が少なくて快適です。今までhtmlで書いていたものがあれば、erb2hamlで一気に置き換えてしましましょう。cssフレームワークはおなじみbootstrapを使用しています。Turbolinksturbolinksjquery-turbolinksrails3から導入された悪名高い(?)Turbolinksですが、ばりばり使用しています。あったほうがベターですが、javascriptの書き方に工夫が必要なのですでにjavascriptがごりごり動いているところにはつらいかもしれません。bootstrapはjquery-turbolinksを入れておけばとりあえず動きます。Turbolinksについては以下の記事も書きましたので、参考に。scrollとRails4のTurbolinksTurbolinksへの対応(Facebook,Twitter,はてブ,LINE)ユーザ管理deviseomniauthomniauth-facebookomniauth-twitter認証機能はdeviseをつかえば簡単にできちゃいますね。すべてのサービスに使用しています。facebookやtwitterでの認証も使用したいので、omniauthを使ってdeviseと連携しています。omniauthで使用できるプロバイダはgoogle、github、はてな、mixi、linkedin等たくさんありますので、サービスの性質に応じて選んでください。画像関連carrierwavermagicklightbox2-rails画像アップロードにはcarrierwave、加工にrmagickです。表示はlightboxでエフェクト。Scroll]を使用して、Facebook風無限スクロールにしています。scrollとRails4のTurbolinksフォーム関連nested_formselect2-railsneted_formは動的に子要素(has_manyの子モデル)を追加するのがすごく簡単になります。select2はセレクトボックスに検索機能をつけてくれます。ソーシャル機能socializationpublic_activitysocializationはいいね!やフォローの機能に使用します。public_activityは通知機能に使用しています。「○○さんがいいね!と言いました」のような。SEOmeta-tagsmetaタグを書くに便利なヘルパーです。FacebookのOGPやTwitterカードの設定もできて、SEOだけでなくソーシャルメディア対策もばっちりです。railsとjavascript間での変数受け渡しデプロイcapistrano-railscapistrano-rbenvcapistrano-passengerCapistranoなしでのデプロイはありえないです。開発環境byebugweb-consolespringdotenv-railsbullet最初の3つはデフォルト入っていますね。dotenvはdatabase.yml内でパスワードの管理をしたくないので、開発環境では環境変数で指定しています。production環境ではCapistranoのlinked_filesとして設定して、サーバに事前設置します。bulletはN+1問題を通知してくれます。便利ですが、ときどきうざいです・・・。テストrspec-railsfactory_girl_railsguard-rspecspring-commands-rspecfakercapybaradatabase_cleanerlaunchyselenium-webdrivershoulda-matchersRSpecでテストコードを書いて、FakerとFactoryGirlでテストデータを作って、Guardで監視+自動テストというお決まりパターンです。ブラウザを使用したテストはCapybaraで。RSpecによるRailsテスト入門」がとてもよかったです。実際にサービス、Artueをのぞいてどんな風につかわれているか確認してみてください。ログインしてdeviseの動作確認からですよ。