江の島エンジニアBlog

  • Rails RailsとElasticsearchとkaminariの組み合わせで気をつけること (2016/12/17)

    RailsでElasticsearchと言えばelasticsearch-rails gemの出番ですが、kaminariと組み合わせる時に気をつけた方が良いことをまとめてみました。小ネタです。

  • Rails Railsのレスポンス遅延を通知する (2015/12/13)

    Railsを運用しているとレスポンスタイムの監視は欠かせません。New Relicなどを使って監視している方が多いかと思いますが、今回はActive SupportのInstrumentation機能を使って10秒以上のレスポンスを通知するシンプルな方法をご紹介します。

  • RSpec RSpecでDatabaseCleanerを使っているのにAUTOCOMMITされたデータが残る場合の対処 (2015/12/03)

    RSpecでテストをする際にDatabaseCleanerを使うとテストケース毎にデータを削除してくれて非常に便利なのですが、transaction strategyで実行している場合にAUTOCOMMITされたデータが削除されず、その結果テストが失敗してしまう場合があります。今回はその対処方法をまとめてみました。

  • Rails Doorkeeper2.1.4でコンソールからOAuth2.0認証API用のアクセストークンを発行してみた (2015/04/25)

    OAuth2認証の定番Doorkeeper gemを使ってコンソールからアクセストークンを発行してみました。自前で認証画面を作る場合など参考になるかと思います。

  • MySQL MySQLのBULK INSERTでデッドロックを回避する (2015/04/05)

    Railsでactiverecord-importを使ってバルクインサートをする時にDeadlockエラーが出たので対処しました。バルクインサートをする時にはINSERT順を気をつけないといけませんねという話です。

  • tips Rubyでのメソッドの委譲方法をまとめてみた (2015/03/26)

    Rubyでは委譲の方法がいくつかあるのでまとめてみました。インスタンスメソッドの委譲方法とクラスメソッドの委譲方法をまとめています。チームで開発している場合はあらかじめ方法を統一しておくと良いと思います。

  • tips MySQLでインデックスや外部キー制約をリネームする (2015/03/26)

    テーブルを置き換える場合などにはテーブル名だけでなく、インデックスや外部キー制約も名前変更する必要があります。MySQL5.7系だとRENAME INDEXができるのですが、5.6系だと残念ながら削除&追加するしかないので、その方法をまとめておきます。

  • tips MySQLでクエリの実行時間を手っ取り早く計測する (2015/03/26)

    MySQLでインデックスがちゃんと効いているか確認する時などに実際にクエリを走らせることがあるのですが、だいたいこんな感じで手っ取り早く済ませてますというTipsです。

  • AWS S3に置いたGzip圧縮済みCSVファイルをRubyで読み込んでみた (2015/03/25)

    Rubyでaws-sdkを使ってS3に置いたGzip圧縮したCSVファイル読み込む手順をご紹介します。

  • Git 息をするようにプルリクするための6つのGitの使い方 (2015/02/05)

    プルリクエストを基本とした開発スタイルの場合、Gitコマンドの使い方が開発効率にかなり影響します。今回はプルリクエストをうまく使うためのGitの使い方を6個紹介します。

  • JavaScript ページ遷移時JavaScriptイベント3種類の動作確認コードを作ってみた (2015/01/29)

    ページ遷移した時に発生するJavaScriptイベントがload, pageShow, popStateといくつかあってブラウザによって挙動が違ったりするので動作確認用のコードを作りました。Railsのturbolinks機能を使う時など、結構確認することがありそうなので公開しておきます。

  • 報告 賃貸情報株式会社のCTOに着任しました (2015/01/21)

    本日承認いただきまして賃貸情報株式会社のCTOに着任しました。

  • Nginx curlコマンドでNginxのX-Forwarded-ProtoでのHTTPSリダイレクトのテストをする (2015/01/20)

    NginxでX-Forwarded-Protoの値を見てhttpsだったらhttpにリダイレクトする設定をしてcurlコマンドでテストしてみました。

  • RSpec has-many関連のuniqueness validationをテストするカスタムマッチャも作ってみた (2015/01/08)

    前回の記事でカスタムバリデータを作ってhas-many関連のuniqueness validationを行いましたが、続いてテスト用にvalidate_objects_uniqueness_ofカスタムマッチャを作りました。

  • Rails has-many関連のuniqueness validationをするカスタムバリデータを作ってみた (2015/01/08)

    ActiveRecordのUniquenessValidatorはネストしたパラメタ内の重複オブジェクトの一意性を検出してくれないので、カスタムバリデータを作って対応しました。

  • Chef knife&chef-soloで空レシピを作成・実行する (2015/01/08)

    knifeコマンドで空のリポジトリ&レシピを作ってchef-soloでレシピを実行する手順です。

  • Nginx ngx_small_lightをMacで使ってみた (2015/01/07)

    画像のリサイズ等を動的に行ってくれるngx_small_lightをMacのNginxに組み込んでみたのでそのメモです。

  • ActiveRecord Rails4でhas_manyな関連オブジェクトの上限数を設定&テストする (2014/12/25)

    ActiveRecordのhas_manyな関連オブジェクトに上限数を設定したかったのでやってみました。

  • CoffeeScript Rails4でhas-one関連先のレコードをCoffeeScriptから作成&更新する (2014/12/11)

    Railsで画面遷移なしでレコードを作成&更新したいことがよくあるので、CoffeeScriptを使った実装パターンをまとめてみました。

  • Git よく使うGitコマンドのエイリアス&シェル関数トップ10+α (2014/12/04)

    Gitコマンドはターミナルで最もよく使うコマンドなのでエイリアスやシェル関数にして実行しているのですが、実際に何をよく使っているか調べてみました。

  • Elasticsearch Rails ConsoleでActiveRecordをElasticsearchに放り込んでみる (2014/12/03)

    ActiveRecordのデータをElasticsearchに放り込むのはとても簡単なので、Rails Consoleから実践してみます。

  • ActiveRecord Rails4でFormオブジェクトを作る際に気をつける3つのポイント (2014/12/02)

    Railsで実際にFormオブジェクトを作ってみたらいくつか気をつけるポイントがあったので紹介します。

  • Rails Rails4.1.8でアクション毎の実行権限を設定してみる (2014/11/22)

    Railsのアクションでユーザ毎の権限に応じて実行結果を変えたかったので、Pundit gemを使って設定してみました。

  • ActiveRecord Rails4.1.7のActiveRecordにCallbackクラス&Validatorクラス&Valueオブジェクトを組み込んでみる (2014/11/12)

    ActiveRecordに楽をさせてくれるCallback・Validator・Valueオブジェクトを、過去文献を参考に組み込んでみました。

  • Elasticsearch elasticsearch-railsで任意のリクエストを送れるperform_requestメソッドが便利 (2014/10/31)

    elasticsearch-railsのソースを軽く読んでいたら、任意のリクエストを送れるperform_requestという便利メソッドがあったので紹介します。

  • Capybara Rails4+RSpec+Capybaraでよく使うマッチャ&メソッド22個+α (2014/10/30)

    Rails4のレスポンスをRSpecでテストする際にCapybaraを使っているのですが、マッチャやメソッドの使い方を調べることが多いのでまとめてみました。

  • Rails Rails4でRESTfulアプリケーションの7アクション+αを作る (2014/10/30)

    RailsにはRESTfulなURIを生成してくれる便利な機能があり、いつもお世話になっております。今回は連載形式でRESTfulなコントローラの作り方をご紹介します。

  • RSpec Rails4のActiveRecord向けRSpecカスタムマッチャ5選 (2014/10/30)

    Rails4でRSpecカスタムマッチャを追加してモデルのテストを行います。ここで紹介するカスタムマッチャではNOT NULL制約、UNIQUE制約、外部キー制約といったDB制約のテストや、FactoryGirlで正しくモデルを作れることなどをテストします。

  • Rails ActiveRecordでincludesとwhereを同時に使う時はJOINするテーブル名の指定に気をつける (2014/10/28)

    ActiveRecordでincludesとwhereを合わせて使ったらDEPRECATION WARNINGが出たので記事に残しておきます。最終的にはちゃんとArelを使って対応しました。

  • Rails Rails4でエンタープライズなActiveRecordモデルを作るための6のステップ (2014/10/26)

    Railsではモデルのひな形を自動生成してくれますが、そのままでは開発現場では使えません。この記事ではRails4のActiveRecordをエンタープライズ用途に使えるようにするために実行している6のステップを紹介します。

  • Rails4のActiveRecord向けRSpecカスタムマッチャ5選(第5回)
    RSpec Rails4のuniqueness validationテストでInvalidForeignKeyエラーにならないカスタムマッチャを作る (2014/10/26)

    Rails4で外部キー制約を持つモデルでvalidate_uniqueness_ofマッチャを使うとInvalidForeignKeyエラーが起きてしまい、ちゃんとテストできないのでsafely_validate_uniqueness_ofカスタムマッチャを作りました。

  • Rails4のActiveRecord向けRSpecカスタムマッチャ5選(第4回)
    RSpec RSpecカスタムマッチャでFactoryGirlでのモデル生成をテストする (2014/10/26)

    Rails4でFactoryGirlがちゃんとしたモデルを生成することを確認したかったのでcreate_modelカスタムマッチャを作りました。

  • Rails4+RSpec+Capybaraでよく使うマッチャ&メソッド22個+α(第25回)
    Capybara ログインが必要なページをテストする (2014/10/11)

    Capybaraのテストでログイン処理を行う方法を紹介します。

  • Rails4+RSpec+Capybaraでよく使うマッチャ&メソッド22個+α(第24回)
    Capybara Basic認証が必要なページをテストする (2014/10/11)

    CapybaraでBasic認証をパスする方法を紹介します。

  • Rails4+RSpec+Capybaraでよく使うマッチャ&メソッド22個+α(第23回)
    Capybara find&nativeメソッドでmeta要素をテストする (2014/10/11)

    keywordsやdescriptionなどのmeta要素をテストする方法を紹介します。

  • Rails4+RSpec+Capybaraでよく使うマッチャ&メソッド22個+α(第22回)
    Capybara nativeメソッドでネイティブオブジェクトを取得する (2014/10/11)

    ネイティブオブジェクトを取得するnativeメソッドの使い方を説明します。

  • Rails4+RSpec+Capybaraでよく使うマッチャ&メソッド22個+α(第21回)
    Capybara allメソッドで要素リストを取得する (2014/10/11)

    指定したCSSセレクタにマッチする全てのオブジェクトをallメソッドで取得します。

  • Rails4+RSpec+Capybaraでよく使うマッチャ&メソッド22個+α(第20回)
    Capybara find_linkメソッドでリンク要素を取得する (2014/10/11)

    リンク要素のオブジェクトをfind_linkメソッドで取得します。

  • Rails4+RSpec+Capybaraでよく使うマッチャ&メソッド22個+α(第19回)
    Capybara find_by_idメソッドでid要素を取得する (2014/10/11)

    idで指定した要素のオブジェクトをfind_by_idメソッドで取得します。

  • Rails4+RSpec+Capybaraでよく使うマッチャ&メソッド22個+α(第18回)
    Capybara find_fieldメソッドでフィールド要素を取得する (2014/10/11)

    フィールド要素のオブジェクトをfind_fieldメソッド取得します。

  • Rails4+RSpec+Capybaraでよく使うマッチャ&メソッド22個+α(第17回)
    Capybara find_buttonメソッドでボタン要素を取得する (2014/10/11)

    ボタン要素のオブジェクトをfind_buttonメソッドで取得します。

  • Rails4+RSpec+Capybaraでよく使うマッチャ&メソッド22個+α(第16回)
    Capybara findメソッドでオブジェクトを取得する (2014/10/11)

    オブジェクトを取得するfindメソッドの使い方を説明します。

  • Rails4+RSpec+Capybaraでよく使うマッチャ&メソッド22個+α(第15回)
    Capybara uncheckメソッドでチェックボックスを選択解除する (2014/10/11)

    チェックボックスを選択解除するuncheckメソッドの使い方を説明します。

  • Rails4+RSpec+Capybaraでよく使うマッチャ&メソッド22個+α(第14回)
    Capybara checkメソッドでチェックボックスを選択する (2014/10/11)

    チェックボックスを選択するcheckメソッドの使い方を説明します。

  • Rails4+RSpec+Capybaraでよく使うマッチャ&メソッド22個+α(第13回)
    Capybara chooseメソッドでラジオボタンから要素を選択する (2014/10/11)

    ラジオボタンを選択するchooseメソッドを紹介します。

  • Rails4+RSpec+Capybaraでよく使うマッチャ&メソッド22個+α(第12回)
    Capybara selectメソッドでセレクトボックスから要素を選択する (2014/10/11)

    セレクトボックスから要素を選択するselectメソッドを紹介します。

  • Rails4+RSpec+Capybaraでよく使うマッチャ&メソッド22個+α(第11回)
    Capybara fill_inメソッドでフォームにテキストを入力する (2014/10/11)

    フォームにテキストを入力するfill_inメソッドの使い方を説明します。

  • Rails4+RSpec+Capybaraでよく使うマッチャ&メソッド22個+α(第10回)
    Capybara click_onメソッドでボタンをクリックする (2014/10/11)

    ボタンをクリックするclick_onメソッドを紹介します。

  • Rails4+RSpec+Capybaraでよく使うマッチャ&メソッド22個+α(第9回)
    Capybara have_selectマッチャで指定したセレクトボックスの選択内容を確認する (2014/10/11)

    セレクトボックスの内容をhave_selectマッチャで確認します。

  • Rails4+RSpec+Capybaraでよく使うマッチャ&メソッド22個+α(第8回)
    Capybara have_unchecked_fieldマッチャで指定したチェックボックス/ラジオボタンを確認する (2014/10/11)

    選択されていないチェックボックスやラジオボタンがあることをhave_unchecked_fieldマッチャで確認します。

  • Rails4+RSpec+Capybaraでよく使うマッチャ&メソッド22個+α(第7回)
    Capybara have_checked_fieldマッチャで指定したチェックボックス/ラジオボタンを確認する (2014/10/11)

    選択されているチェックボックスやラジオボタンがあることをhave_checked_fieldマッチャで確認します。

  • Rails4+RSpec+Capybaraでよく使うマッチャ&メソッド22個+α(第6回)
    Capybara have_fieldマッチャで指定した入力フィールドを確認する (2014/10/11)

    フォームの入力フィールドをhave_fieldマッチャで確認テストを行います。

  • Rails4+RSpec+Capybaraでよく使うマッチャ&メソッド22個+α(第5回)
    Capybara have_buttonマッチャで指定したボタンを確認する (2014/10/11)

    投稿フォームの確認などで必要になるhave_buttonマッチャでの指定したボタンの確認テストを行います。

  • Rails4+RSpec+Capybaraでよく使うマッチャ&メソッド22個+α(第4回)
    Capybara have_cssマッチャで指定したタグの内容を確認する (2014/10/11)

    タグを指定してページ内容を確認できるhave_cssマッチャの使い方を紹介します。

  • Rails4+RSpec+Capybaraでよく使うマッチャ&メソッド22個+α(第3回)
    Capybara have_linkマッチャでリンク内容を確認する (2014/10/11)

    ページ内のリンクをhave_linkマッチャで確認します。

  • Rails4+RSpec+Capybaraでよく使うマッチャ&メソッド22個+α(第2回)
    Capybara have_contentマッチャでコンテンツ内容を確認する (2014/10/11)

    ページ内容をhave_contentマッチャで確認します。

  • Rails4+RSpec+Capybaraでよく使うマッチャ&メソッド22個+α(第1回)
    Capybara have_titleマッチャでタイトル内容を確認する (2014/10/11)

    Capybaraの導入とhave_titleマッチャでのタイトル内容テストを行います。

  • Rails4でRESTfulアプリケーションの7アクション+αを作る(第7回)
    Rails destroyアクションで記事を削除する (2014/10/03)

    前回までにRailsで記事削除・作成・更新を行ってきましたが、今回はdestroyアクションでRESTfulに記事データを削除します。

  • Rails4でRESTfulアプリケーションの7アクション+αを作る(第6回)
    Rails updateアクションで記事を更新する (2014/10/03)

    前回は投稿済みの記事の編集フォームを表示できるようにしました。今回は編集フォームからデータを受け取ってupdateアクションで記事データを更新します。

  • Rails4でRESTfulアプリケーションの7アクション+αを作る(第5回)
    Rails editアクションで記事編集フォームを作る (2014/10/03)

    記事の投稿・閲覧ができるようになったので、次はeditアクションでRESTfulな記事編集フォーム表示を行います。

  • Rails4でRESTfulアプリケーションの7アクション+αを作る(第4回)
    Rails createアクションで記事を作成する (2014/10/03)

    前回はnewアクションでRESTfulな記事投稿フォーム表示機能を実装しました。今回はその投稿フォームから受け取ったデータで記事を作成するcreateアクションでの実装を行います。

  • Rails4でRESTfulアプリケーションの7アクション+αを作る(第3回)
    Rails newアクションで記事投稿フォームを作る (2014/10/03)

    これまでindexアクションとshowアクションでRESTfulな記事一覧&表示機能を実装してきましたが、今回からは記事投稿機能を実装します。まずはnewアクションで投稿フォームの作成を行います。

  • Rails4でRESTfulアプリケーションの7アクション+αを作る(第2回)
    Rails showアクションで記事表示機能を作る (2014/10/03)

    前回はindexアクションでRESTfulな記事一覧機能を実装しましたが、今回はshowアクションで各記事の表示を行います。

  • Rails4でRESTfulアプリケーションの7アクション+αを作る(第1回)
    Rails indexアクションで記事一覧機能を作る (2014/10/03)

    RailsにはRESTfulなURIを生成してくれる便利な機能があり、キャッシュバック賃貸でもよく使っています。今回はその機能を利用した記事一覧機能の作り方をご紹介します。

  • Redis キャッシュバック賃貸の新サービス「住まいの調査隊」でのRails&Redis活用 (2014/10/02)

    10/1にキャッシュバック賃貸から、住まいに関するアンケート調査結果を発信する「住まいの調査隊」をリリースしました。「住まいの調査隊」ではRails+Redisで人気記事ランキングを行っているので、その事例を簡単にご紹介します。

  • MySQL MySQLからエクスポートしたCSVをRubyで読み込む (2014/09/30)

    MySQLのテーブルをCSV経由でRubyで読み込もうとしたら一筋縄ではいかなかったのでメモしておきます。

  • Ruby ActiveRecordモデルの設計例 (2014/09/24)

    Railsのmigration例

  • Nginx Nginx+RailsをProduction環境で動かす (2014/09/22)

    Nginx+RailsをProduction環境で動かす。

  • Ruby RailsのProduction環境でCKEditorを動かす (2014/09/22)

    RailsのProduction環境でCKEditorを動かす

  • RSpec RSpec3.1の主な変更点をまとめてみた (2014/09/12)

    RSpec3.1がリリースされたので新機能&変更点をまとめてみました

  • JavaScript jQueryのオートコンプリート機能を使ってサジェスト検索窓を作る (2014/09/11)

    jQueryのオートコンプリート機能がいい感じだったので今回はそのご紹介をします。

  • Capybara Capybaraでよく使うマッチャ&メソッド (2014/09/11)

    Capybaraを使う時に検索して調べることが多いのでマッチャ等を利用例にまとめました。

  • Rails4のActiveRecord向けRSpecカスタムマッチャ5選(第3回)
    RSpec RSpecカスタムマッチャでデータベースの外部キー制約をテストする (2014/09/10)

    Railsでモデルを作る時に外部キー制約テストも簡単に書きたかったのでカスタムマッチャを作りました。

  • Rails4のActiveRecord向けRSpecカスタムマッチャ5選(第2回)
    RSpec RSpecカスタムマッチャでデータベースのUNIQUE制約をテストする (2014/09/09)

    Railsでモデルを作る時にUNIQUE制約テストも簡単に書きたかったのでカスタムマッチャを作りました

  • Rails4のActiveRecord向けRSpecカスタムマッチャ5選(第1回)
    RSpec RSpecカスタムマッチャでデータベースのNOT NULL制約をテストする (2014/09/08)

    Railsでモデルを作る時にNOT NULL制約テストを簡単に書きたかったのでカスタムマッチャを作りました。

  • Git git commitをフックしてコミットメッセージに自動的にチケット番号を追加する (2014/09/06)

    いちいちコミットメッセージにチケット番号を追加するのは面倒なので、自動的にチケット番号を追加してくれるgit commitのhookを作りました。

  • Ruby Rubyでデータオブジェクト用クラスを手抜き作成 (2014/08/30)

    Rubyでとりあえずデータオブジェクト用のクラスが欲しい時によくこんなことしてます

  • Elasticsearch elasticsearch-rails0.1.4の検索機能をRSpecでテストする (2014/08/22)

    前回RailsからElasticsearchを使ってみましたが, 今回はRSpecでモデルのElasticsearch機能のテストを行います.

  • Elasticsearch elasticsearch-rails0.1.4を使ってRails4.1.5でN-gram検索する (2014/08/21)

    RailsからElasticsearchを使う場合に推奨となっているelasticsearch-rails gemを使ってN-gram検索機能を作ってみます.

  • Jekyll JekyllでGitリポジトリのmasterブランチが更新されたら自動ビルドする (2014/08/17)

    masterが更新されたときに自動的にリポジトリ更新 & jekyll buildをする設定です.

  • Jekyll Jekyll2.2.0でレスポンシブにしてスマホ対応してみた (2014/08/12)

    Jekyllの初期設定だと小さい画面でも画像が大きいままで, スマホで読みにくかったのでレスポンシブ対応を行いました.

  • Jekyll Ruby2.1.2+Jekyll2.2.0+Nginx+独自ドメインでブログを作ってみた (2014/08/09)

    前から興味があったJekyllでブログを作ってみました.

  • Vagrant Vagrantで固定IPのVMを作ってみたら超簡単だった (2013/07/25)

    VagrantのVMに他のマシンから接続したかったのでブリッジ接続で固定IPにしてみました。

  • HBase HBaseを止めるな! ~OKWaveの挑戦~ (2013/02/16)

    いまだにHBaseには怖くて手が出せてないんですが、12/10のHadoopソリューションセミナー@東京カンファレンスセンター品川でのOKWaveさんの事例紹介が素晴らしかったのでご紹介します。

  • Redmine NTTコミュニケーションズの内製エンジニアは実はわりとアジャイラー (2013/02/16)

    @hamaknがDevSumiで『OSSで作る!クラウドサービス開発戦記』というNTTコミュニケーションズのアジャイル開発事例をしてくれたので、私も同僚としてアジャイル開発現場の紹介をしてみたくなりました。

  • Hadoop つぶやきを追え ~『爆発するソーシャルメディア』との戦い~ (後編) (2012/12/31)

    前編、中編に続いて『Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析』(2012/12/10 Hadoopエンタープライズソリューションセミナー)レポートの最終回です。

  • Hadoop つぶやきを追え ~『爆発するソーシャルメディア』との戦い~ (中編) (2012/12/23)

    前回に引き続き『Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析』(2012/12/10 Hadoopエンタープライズソリューションセミナー)の発表内容をご紹介します。

  • Hadoop つぶやきを追え ~『爆発するソーシャルメディア』との戦い~ (前編) (2012/12/22)

    前回の記事でOKWaveさんのHBase事例のご紹介をしましたが、このイベントでは最後のセッションで僕もTwitter分析の事例を発表させていただいたので今日はそちらをご紹介します。