はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

  • はてなブックマークって?
  • アプリ・拡張の紹介
  • ユーザー登録
  • ログイン
  • Hatena

はてなブックマーク

トップへ戻る

  • 総合
    • 人気
    • 新着
    • IT
    • 最新ガジェット
    • 自然科学
    • 経済・金融
    • おもしろ
    • マンガ
    • ゲーム
    • はてなブログ(総合)
  • 一般
    • 人気
    • 新着
    • 社会ニュース
    • 地域
    • 国際
    • 天気
    • グルメ
    • 映画・音楽
    • スポーツ
    • はてな匿名ダイアリー
    • はてなブログ(一般)
  • 世の中
    • 人気
    • 新着
    • 新型コロナウイルス
    • 働き方
    • 生き方
    • 地域
    • 医療・ヘルス
    • 教育
    • はてな匿名ダイアリー
    • はてなブログ(世の中)
  • 政治と経済
    • 人気
    • 新着
    • 政治
    • 経済・金融
    • 企業
    • 仕事・就職
    • マーケット
    • 国際
    • はてなブログ(政治と経済)
  • 暮らし
    • 人気
    • 新着
    • カルチャー・ライフスタイル
    • ファッション
    • 運動・エクササイズ
    • 結婚・子育て
    • 住まい
    • グルメ
    • 相続
    • はてなブログ(暮らし)
    • 掃除・整理整頓
    • 雑貨
    • 買ってよかったもの
    • 旅行
    • アウトドア
    • 趣味
  • 学び
    • 人気
    • 新着
    • 人文科学
    • 社会科学
    • 自然科学
    • 語学
    • ビジネス・経営学
    • デザイン
    • 法律
    • 本・書評
    • 将棋・囲碁
    • はてなブログ(学び)
  • テクノロジー
    • 人気
    • 新着
    • IT
    • セキュリティ技術
    • はてなブログ(テクノロジー)
    • AI・機械学習
    • プログラミング
    • エンジニア
  • おもしろ
    • 人気
    • 新着
    • まとめ
    • ネタ
    • おもしろ
    • これはすごい
    • かわいい
    • 雑学
    • 癒やし
    • はてなブログ(おもしろ)
  • エンタメ
    • 人気
    • 新着
    • スポーツ
    • 映画
    • 音楽
    • アイドル
    • 芸能
    • お笑い
    • サッカー
    • 話題の動画
    • はてなブログ(エンタメ)
  • アニメとゲーム
    • 人気
    • 新着
    • マンガ
    • Webマンガ
    • ゲーム
    • 任天堂
    • PlayStation
    • アニメ
    • バーチャルYouTuber
    • オタクカルチャー
    • はてなブログ(アニメとゲーム)
    • はてなブログ(ゲーム)
  • おすすめ

    iPhone 17

『haracaneのブログ』

  • 人気
  • 新着
  • すべて
  • RailsとElasticsearchとkaminariの組み合わせで気をつけること

    4 users

    haracane.github.io

    Rails / Elasticsearch この記事はRuby on Rails Advent Calendar 2016の17日目です。 RailsでElasticsearchといえばelasticsearch-railsですね。 今回はelasticsearch-railsとkaminariを合わせて使う時に押さえておいた方が良いことをまとめてみました。 ただ、基本的にはドキュメントにも書いてあることなのでちゃんとドキュメントを読んでおいた方が良いです。 検索結果をArelオブジェクトとして扱うと順番が変わる まず前準備として、これはドキュメントにも書いてあることなのですが records = User.search(sort: {id: :desc}).records records.class # => Elasticsearch::Model::Response::Records

    • テクノロジー
    • 2016/12/21 00:31
    • MySQLのBULK INSERTでデッドロックを回避する

      5 users

      haracane.github.io

      Railsでactiverecord-importを使ってバルクインサートをする時にDeadlockエラーが出たので対処しました。バルクインサートをする時にはINSERT順を気をつけないといけませんねという話です。 MySQL / Rails / Ruby MySQLのBULK INSERTでエラー発生 ログ集計した結果をテーブルにBULK INSERTしていたら ActiveRecord::StatementInvalid: Mysql2::Error: Deadlock found when trying to get lock; try restarting transaction: INSERT INTO `books` (`id`,`name`) VALUES ... というデッドロックエラーが発生しました。 BULK INSERTのエラー原因調査 ということでデッドロックの原因

      • テクノロジー
      • 2016/08/25 18:31
      • Railsのレスポンス遅延を通知する

        4 users

        haracane.github.io

        Railsを運用しているとレスポンスタイムの監視は欠かせません。New Relicなどを使って監視している方が多いかと思いますが、今回はActive SupportのInstrumentation機能を使って10秒以上のレスポンスを通知するシンプルな方法をご紹介します。 Rails この記事はRuby on Rails Advent Calendar 2015の13日目です。 Active Support Instrumentationとは ざっくり言うと「Railsアプリケーションやフレームワーク内のアクションを計測するためのAPI」です。 この仕組みを使うと、コントローラのアクション実行やSQL実行などをフックすることができます。 今回はこのInstrumentationの仕組みを使ってレスポンス遅延の監視を行います。 アクションを監視する アクションを監視するには提供されているフック

        • テクノロジー
        • 2015/12/18 10:45
        • rails
        • RSpecでDatabaseCleanerを使っているのにAUTOCOMMITされたデータが残る場合の対処

          3 users

          haracane.github.io

          RSpecでテストをする際にDatabaseCleanerを使うとテストケース毎にデータを削除してくれて非常に便利なのですが、transaction strategyで実行している場合にAUTOCOMMITされたデータが削除されず、その結果テストが失敗してしまう場合があります。今回はその対処方法をまとめてみました。 RSpec / Rails / Ruby この記事はRuby on Rails Advent Calendar 2015の3日目です。 DatabaseCleanerでテスト実行毎にデータを削除する RSpecでテストをする際に、各テストケースの実行毎にデータベースの状態をクリアしてくれるdatabase_cleanerというgemがあります。 このgemはとても便利で、rails_helper.rbに以下のような感じで設定しておくと他のテストの影響を受けずに各テストケースを実

          • テクノロジー
          • 2015/12/06 23:12
          • Rails4.1.7のActiveRecordにCallbackクラス&Validatorクラス&Valueオブジェクトを組み込んでみる

            3 users

            haracane.github.io

            • テクノロジー
            • 2015/07/06 11:41
            • rails
            • ruby
            • has-many関連のuniqueness validationをするカスタムバリデータを作ってみた

              5 users

              haracane.github.io

              ActiveRecordのUniquenessValidatorはネストしたパラメタ内の重複オブジェクトの一意性を検出してくれないので、カスタムバリデータを作って対応しました。 Rails / ActiveRecord UniquenessValidatorの問題 ActiveRecordのUniquenessValidatorはDBに保存済みのレコードと重複した場合はvalidationしてくれますが、 ネストしたパラメタで重複したオブジェクトを作ろうとしてもスルーしてしまいます。 例えば以下のパラメタが入力された場合にtag_idの重複をvalidationできません。 { "posts_attributes" => { "0" => { "post_tags_attributes" => { "0" => {"tag_id" => 1}, "1" => {"tag_id" => 1}

              • テクノロジー
              • 2015/05/26 15:34
              • rails
              • have_linkマッチャでリンク内容を確認する

                4 users

                haracane.github.io

                Capybara / RSpec / Rails / Ruby 連載: Rails4+RSpec+Capybaraでよく使うマッチャ&メソッド22個+α 「」第回の今回はページ内のリンクをhave_linkマッチャで確認します。 have_linkマッチャでリンク内容確認を行うには it { should have_link '江の島エンジニアBlog', href: '/' } のようにマッチャを使います。 リンクがないことを確認したい場合はshould_notを使います。 it { should_not have_link 'プロフィール' } リンクではないテキストがあることを確認したい場合はhave_contentと組み合わせて it { should have_content 'プロフィール' } it { should_not have_link 'プロフィール' } のように

                • テクノロジー
                • 2015/05/06 22:12
                • *programming
                • rails
                • Doorkeeper2.1.4でコンソールからOAuth2.0認証API用のアクセストークンを発行してみた

                  10 users

                  haracane.github.io

                  OAuth2認証の定番Doorkeeper gemを使ってコンソールからアクセストークンを発行してみました。自前で認証画面を作る場合など参考になるかと思います。 Rails / Ruby / OAuth2.0 Doorkeeperを使うとデフォルトの認証画面を使うのが定番のようですが、自前で認証画面を用意したりRakeタスクでアクセストークンを発行したいことがあったりします。 ということで、Railsコンソールからアクセストークンの発行までやってみました。 Doorkeeper インストール まずはRailsプロジェクトのGemfileにDoorkeeper gemを追加してbundle installします。 # Gemfile gem 'doorkeeper' 今回はdoorkeeper-2.1.4が入りました。 続いてActiveRecord用の設定&テーブルを作成します。 $ ra

                  • テクノロジー
                  • 2015/04/28 11:45
                  • Doorkeeper
                  • 認証
                  • API
                  • rails
                  • 息をするようにプルリクするための6つのGitの使い方

                    8 users

                    haracane.github.io

                    プルリクエストを基本とした開発スタイルの場合、Gitコマンドの使い方が開発効率にかなり影響します。今回はプルリクエストをうまく使うためのGitの使い方を6個紹介します。 Git 1. 最初は空コミット git commit --allow-emptyを実行すると空のコミットを作ることができます。 作業を始める時はまず空コミットでプルリクを作って、実装中のメモ書きをしたりしています。 なお、このプルリクにはWIP(Work in progress)ラベルをつけて作業中ということがわかるようにしています。 2. コミットメッセージにチケット番号を含める git commit -m 'TICKET-123 コミットメッセージ'のようにコミットの先頭にチケット番号を追加するようにしています。 これでチケット番号でプルリクを検索しやすくなりますし、次のプルリクエストメッセージ作成の自動化にも役に立ち

                    • テクノロジー
                    • 2015/02/09 20:14
                    • Git
                    • GitHub
                    • よく使うGitコマンドのエイリアス&シェル関数トップ10+α

                      8 users

                      haracane.github.io

                      Gitコマンドはターミナルで最もよく使うコマンドなのでエイリアスやシェル関数にして実行しているのですが、実際に何をよく使っているか調べてみました。 Git この記事はGit Advent Calendar 2014の4日目です。 3日目は@sue738さんの「Githubのブラウザのみでブランチ切ってプルリクするまで」でした。おつかれさまでした。 今回はよく使うGitコマンドのランキングです。ちなみに、同じサブコマンドはまとめて集計しました。 ではさっそく結果発表です。 1位:とりあえずgs これはgit statusのエイリアスです。 alias gs='git status' 「何の作業してたっけな」という時にまず打ってみるコマンドなので、やっぱり利用頻度が高いですね。 ちなみに2位の3倍のダントツ1位でした。 2位:ga, gapでインデックス追加 それぞれgit addとgit a

                      • テクノロジー
                      • 2014/12/05 08:37
                      • Git
                      • Rails ConsoleでActiveRecordをElasticsearchに放り込んでみる

                        11 users

                        haracane.github.io

                        ActiveRecordのデータをElasticsearchに放り込むのはとても簡単なので、Rails Consoleから実践してみます。 Elasticsearch / ActiveRecord / Rails / Ruby この記事はElasticsearch Advent Calendar 2014の3日目です。 2日目は@ariarijpさんの「入門記事:ElasticSearch1.4.0とKibana4.0.0の環境構築」でした。おつかれさまでした。 ではさっそくはじめましょう。 elasticsearch-rails Gemを追加する Rails Consoleを起動する前にまずGemfileに gem 'elasticsearch-model' gem 'elasticsearch-rails' を追加します。 bundle installでelasticsearch-ra

                        • テクノロジー
                        • 2014/12/03 11:55
                        • ElasticSearch
                        • Rails
                        • Ruby
                        • 検索
                        • 技術
                        • Rails4でFormオブジェクトを作る際に気をつける3つのポイント

                          83 users

                          haracane.github.io

                          Railsで実際にFormオブジェクトを作ってみたらいくつか気をつけるポイントがあったので紹介します。 ActiveRecord / Rails / Ruby この記事はRuby on Rails Advent Calendar 2014の2日目です。 1日目は@miyukkiさんの「結局Ruby on RailsとPHPってどっちが優れてるの?」でした。おつかれさまでした。 Formオブジェクトとは Formオブジェクトはその名の通り入力フォーム用のオブジェクトです。 フォームとモデルがうまく対応しているときはActiveRecordをそのまま使えば良いのですが、 複数モデルを作りたかったりモデルとは違うValidationを行いたかったりする場合にはFormオブジェクトを使うと便利です。 Formオブジェクトのサンプルコードはこんな感じになります。 class Blog::SiteFo

                          • テクノロジー
                          • 2014/12/02 09:55
                          • rails
                          • form
                          • フォーム
                          • ruby on rails
                          • programming
                          • validation
                          • 開発
                          • プログラミング
                          • モデル
                          • elasticsearch-railsで任意のリクエストを送れるperform_requestメソッドが便利

                            4 users

                            haracane.github.io

                            elasticsearch-railsのソースを軽く読んでいたら、任意のリクエストを送れるperform_requestという便利メソッドがあったので紹介します。 Elasticsearch / Rails / Ruby Blog::PostがElasticsearch::Modelをincludeしているとして Blog::Post.__elasticsearch__.client.perform_request(:get, 'blog-posts/_count').body => {"count"=>2, "_shards"=>{"total"=>5, "successful"=>5, "failed"=>0}} という感じで任意のHTTPリクエストを送れます。 Awesome Printを使えば結果も見やすくなります。 ap Blog::Post.__elasticsearch__.

                            • テクノロジー
                            • 2014/11/07 09:33
                            • elasticsearch
                            • Rails
                            • Rails4でエンタープライズなActiveRecordモデルを作るための6のステップ

                              82 users

                              haracane.github.io

                              Rails / RSpec / Ruby 1. 階層を分けてモデルを作る まずはrails gコマンドでモデルを作ります。たいていの場合はお互いに関連のある複数のモデルを作ることになりますが、それらモデルは同じ階層の下に置くようにします。 例えば $ rails g model Blog::User name:string profile:text $ rails g model Blog::Post user:references permalink:string title:string content:text というようにモデルを作成します。 2. データベース制約を追加する Railsが生成するmigrationにはデータベース制約が設定されていないので、そのままではエンタープライズ用途には使えません。 基本的にNOT NULL制約とUNIQUE制約は必ず設定しますし、外部キーが

                              • テクノロジー
                              • 2014/10/28 09:10
                              • rails
                              • activerecord
                              • rails4
                              • ruby
                              • RoR
                              • プログラミング
                              • *あとで読む
                              • RSpec3.1の主な変更点をまとめてみた

                                3 users

                                haracane.github.io

                                RSpec / Ruby もう1週間経ってしまいましたがRSpec3.1がリリースされたので勉強がてら主な新機能・変更点をまとめてみました。 なお、この記事はMyron Marstonの記事の要約になっています。 Backtraceフィルタの変更 RSpec3.0では表示していなかったgemの中のbacktraceをデフォルトで表示するようになっています。 非表示にする場合は以下を設定します。 RSpec.configure do |config| config.backtrace_exclusion_patterns << /gems/ end 特定のgemのbacktraceを非表示にすることもできます。 RSpec.configure do |config| config.filter_gems_from_backtrace "rack", "rake" end –exclude-p

                                • テクノロジー
                                • 2014/09/16 11:58
                                • rails
                                • *
                                • elasticsearch-rails0.1.4を使ってRails4.1.5でN-gram検索する

                                  20 users

                                  haracane.github.io

                                  Elasticsearch / Ruby / Rails この記事ではレシピ検索をする場合を例に検索機能を追加します. 検索機能を追加するモデルを作る まずは基本となるRecipeモデルを作成します $ rails new search_recipe $ cd search_recipe $ bundle install $ bundle exec rails g model recipe title:string description:text url:string $ bundle exec rake db:create $ bundle exec rake db:migrate $ bundle exec rails console > Recipe.create(title: "ミックス赤玉で豚玉を作ってみた", description: "業務スーパーで買ったのは卵(ミックス赤

                                  • テクノロジー
                                  • 2014/08/21 11:55
                                  • elasticsearch
                                  • rails
                                  • モデル
                                  • search

                                  このページはまだ
                                  ブックマークされていません

                                  このページを最初にブックマークしてみませんか?

                                  『haracaneのブログ』の新着エントリーを見る

                                  キーボードショートカット一覧

                                  j次のブックマーク

                                  k前のブックマーク

                                  lあとで読む

                                  eコメント一覧を開く

                                  oページを開く

                                  はてなブックマーク

                                  • 総合
                                  • 一般
                                  • 世の中
                                  • 政治と経済
                                  • 暮らし
                                  • 学び
                                  • テクノロジー
                                  • エンタメ
                                  • アニメとゲーム
                                  • おもしろ
                                  • アプリ・拡張機能
                                  • 開発ブログ
                                  • ヘルプ
                                  • お問い合わせ
                                  • ガイドライン
                                  • 利用規約
                                  • プライバシーポリシー
                                  • 利用者情報の外部送信について
                                  • ガイドライン
                                  • 利用規約
                                  • プライバシーポリシー
                                  • 利用者情報の外部送信について

                                  公式Twitter

                                  • 公式アカウント
                                  • ホットエントリー

                                  はてなのサービス

                                  • はてなブログ
                                  • はてなブログPro
                                  • 人力検索はてな
                                  • はてなブログ タグ
                                  • はてなニュース
                                  • ソレドコ
                                  • App Storeからダウンロード
                                  • Google Playで手に入れよう
                                  Copyright © 2005-2025 Hatena. All Rights Reserved.
                                  設定を変更しましたx