Logo
  • DoRubyとは
  • お問い合わせ
  • Ruby/Rails
  • Web開発
  • Webマーケティング
  • アピリッツ
  • ライフハック
  • ゲーム制作/開発
  • アプリ開発
  • 新しいカテゴリ
  • Railsの小技
  • Rubyの小技
  • Gemの紹介
  • ActiveRecord
  • 初心者向け
  • Java/Scalaテク
  • Unixのあれこれ
  • データベース
  • スマホ開発
  • HTML/CSS/JavaScript
  • デザイン製作
  • インフラ
  • クラウド
  • セキュリティ
  • エディタ
  • バージョン管理
  • その他
  • python
  • アクセス解析
  • Googleアナリティクス
  • Googleデータスタジオ
  • Web広告
  • SEO
  • UI/UX
  • ソーシャルメディア
  • EC開発
  • Webシステム開発
  • コンサルティング
  • Webデザイン
  • ブロックチェーン
  • ゲーム紹介
  • アプリ紹介
  • ASP
  • 風景
  • パソコン
  • ツール
  • ガジェット
  • 仕事術
  • 健康
  • 生活
  • 書評
  • Excel(エクセル)
  • PowerPoint(パワーポイント)
  • ゲームプランニング
  • SpriteStudio
  • マスターデータ入力/作成
  • Unity
  • キャラクターデザイン
  • ゲームシナリオ
  • レベルデザイン
  • ゲーム分析
  • 3DCG
  • イラスト制作
  • CG/アニメーション
      1. ホーム
      2. Ruby/Rails
      3. Railsの小技
      4. Pry + Hirb でRails コンソール快適化
      • 2018-01-17
        • カテゴリ:
        • Railsの小技
        • タグ:
        • Rails
        • Hirb
        • Pry

      Pry + Hirb でRails コンソール快適化

      この記事は公開から1年以上が経過しています。情報が古い可能性がありますのでご注意ください。
      0cd36696442c5ef75137956023f3c07c

      PryやHirbはRailsの定番gemとして有名ですが
      コンソールでのちゃんとした使い方を知らない方って多いんじゃないでしょうか? (自分もそうでした..)
      使い方を知っているとかなりコンソール生活が捗ります。

      今回は以下の使い方を順に解説していきます。

      • Hirb
      • Pry
        • show-models
        • show-model
        • show-routes
        • find-route
        • recognize-path

      インストール

      まずはgemをインストール。以下の3つを追加します。

      group :development do
        gem 'pry-rails'
      
        gem 'hirb'
        gem 'hirb-unicode'
      end
      

      pryをRailsコンソールで使用するには、pry-railsをインストールします。
      gemをインストールすれば、コンソールを開いた時にpryで起動するようになります。

      Hirb単体では日本語などマルチバイト文字が入った場所に出力結果が乱れてしまうのでhirb-unicodeを一緒にインストールします。

      Hirb (データを表形式で表示)

      ActiveRecordのモデルデータを表形式で表示します。

      [1] pry(main)> Book.all
        Book Load (21.8ms)  SELECT "books".* FROM "books"
      +----+--------+-------+-------------+--------------+
      | id | name   | price | created_at  | updated_at   |
      +----+--------+-------+-------------+--------------+
      | 1  | Book 1 | 1000  | 2017-07-... | 2017-07-1... |
      | 2  | Book 2 | 2000  | 2017-07-... | 2017-07-1... |
      | 3  | Book 3 | 3000  | 2017-07-... | 2017-07-1... |
      | 4  | Book 4 | 4000  | 2017-07-... | 2017-07-1... |
      | 5  | Book 5 | 5000  | 2017-07-... | 2017-07-1... | 
      +----+--------+-------+-------------+--------------+
      5 rows in set
      
      

      selectでカラムを選択して表示することもできます。

      [2] pry(main)> Book.all.select(:id, :name)
        Book Load (0.2ms)  SELECT "books"."id", "books"."name" FROM "books"
      +----+--------+
      | id | name   |
      +----+--------+
      | 1  | Book 1 |
      | 2  | Book 2 |
      | 3  | Book 3 |
      | 4  | Book 4 |
      | 5  | Book 5 |
      +----+--------+
      5 rows in set
      
      

      pluckなどでArrayにしてしまうと表形式になりません。

      [3] pry(main)> Book.all.pluck(:id, :name)
         (0.2ms)  SELECT "books"."id", "books"."name" FROM "books"
      => [[1, "Book 1"], [2, "Book 2"], [3, "Book 3"], [4, "Book 4"], [5, "Book 5"]]
      
      

      Pry(便利なユーティリティ)

      Pryにはモデルやroutesの一覧などを表示する便利なコマンドがありますので、順に紹介します。

      show-models

      全モデルのモデルごとのカラムとリレーションを一覧で表示します。

      [1] pry(main)> show-models
      Beer
        id: integer
        name: string
        type: string
        rating: integer
        ibu: integer
        abv: integer
        created_at: datetime
        updated_at: datetime
        belongs_to hacker
      Hacker
        id: integer
        social_ability: integer
        created_at: datetime
        updated_at: datetime
        has_many pokemons
        has_many beers
      Pokemon
        id: integer
        name: string
        caught: binary
        species: string
        abilities: string
        created_at: datetime
        updated_at: datetime
        belongs_to hacker
        has_many beers through hacker
      

      --grep オプションで絞り込むこともできます。

      [1] pry(main)> show-models --grep Pokemon
      Pokemon
        id: integer
        name: string
        caught: binary
        species: string
        abilities: string
        created_at: datetime
        updated_at: datetime
        belongs_to hacker
        has_many beers through hacker
      

      show-model

      特定モデルを引数に取り、カラムのとリレーションを表示します。

      [1] pry(main)> show-model Pokemon
      Pokemon
        id: integer
        name: string
        caught: binary
        species: string
        abilities: string
        created_at: datetime
        updated_at: datetime
        belongs_to hacker
        has_many beers through hacker
      

      show-routes

      rake routes と同じ出力。

      [1] pry(main)> show-routes
           pokemon POST   /pokemon(.:format)      pokemons#create
       new_pokemon GET    /pokemon/new(.:format)  pokemons#new
      edit_pokemon GET    /pokemon/edit(.:format) pokemons#edit
                   GET    /pokemon(.:format)      pokemons#show
                   PUT    /pokemon(.:format)      pokemons#update
                   DELETE /pokemon(.:format)      pokemons#destroy
              beer POST   /beer(.:format)         beers#create
          new_beer GET    /beer/new(.:format)     beers#new
         edit_beer GET    /beer/edit(.:format)    beers#edit
                   GET    /beer(.:format)         beers#show
                   PUT    /beer(.:format)         beers#update
                   DELETE /beer(.:format)         beers#destroy
      

      こちらも--grep オプションで絞り込むこともできます。

      [2] pry(main)> show-routes --grep beer
              beer POST   /beer(.:format)         beers#create
          new_beer GET    /beer/new(.:format)     beers#new
         edit_beer GET    /beer/edit(.:format)    beers#edit
                   GET    /beer(.:format)         beers#show
                   PUT    /beer(.:format)         beers#update
                   DELETE /beer(.:format)         beers#destroy
      

      find-route

      指定したコントローラ、アクションのRoutes一覧を表示します。

      [1] pry(main)> find-route Book
      Routes for BooksController
      --
      index GET /books(.:format)  [books]
      create POST /books(.:format)  
      new GET /books/new(.:format)  [new_book]
      edit GET /books/:id/edit(.:format)  [edit_book]
      show GET /books/:id(.:format)  [book]
      update PATCH /books/:id(.:format)  
      update PUT /books/:id(.:format)  
      destroy DELETE /books/:id(.:format) 
      

      recognize-path

      指定したパスにマッチするコントローラとアクションを表示します。

      [1] pry(main)> recognize-path '/books/10'
      {:action=>"show", :controller=>"books", :id=>"10"}
      

      まとめ

      今回紹介した2つのgem HirbとPryを使えばデータ検索やスキーマの確認など容易に行うことができます。
      Pryといえばbyebugのイメージでしたが、コンソールで使える便利なコマンドを知ることが出来ました。
      Pryの使い方はまだまだありますので、次回はデバッグ等々での使い方を紹介します。

      参考

      Railsのコンソールをより便利にするpry-rails gem

      今更ながらPryについて色々と調べてみた(後編)


      • 292 views
        • Tweet
        • このエントリーをはてなブックマークに追加

      この記事を書いた人
      25e10f1188eae3506034ce87c74255be?default=mm&size=80
      chop*3
      新卒ですが、頑張りますよ

      「いいね!」するとDoRubyの最新記事を受け取ることができます。

      Facebook

      Twitterから最新記事を受け取るならこちら

      Follow @doruby

      Feedlyから最新記事を受け取るならこちら

      follow us in feedly

      おすすめの記事
      • 502 views
      • 2015-10-01
      RailsのViewを自在にカスタマイズするための「Cosme」gem
      • 1,638 views
      • 2016-07-27
      リニューアルをしたDoRubyの3つの目的
      • 685 views
      • 2016-07-31
      carrierwaveとfogでRiak CSへの画像アップロードを実装する
      • 1,100 views
      • 2017-04-24
      アピリッツの新卒合宿2017

      カテゴリ

      Icon category 1Ruby/RailsList elementRailsの小技List elementRubyの小技List elementGemの紹介List elementActiveRecordList element初心者向けIcon category 4Web開発List elementJava/ScalaテクList elementUnixのあれこれList elementデータベースList elementスマホ開発List elementHTML/CSS/JavaScriptList elementデザイン製作List elementインフラList elementクラウドList elementセキュリティList elementエディタList elementバージョン管理List elementその他List elementpythonIcon category 5WebマーケティングList elementアクセス解析List elementGoogleアナリティクスList elementGoogleデータスタジオList elementWeb広告List elementSEOList elementUI/UXList elementソーシャルメディアIcon category 6アピリッツList elementEC開発List elementWebシステム開発List elementコンサルティングList elementWebデザインList elementブロックチェーンList elementゲーム紹介List elementアプリ紹介List elementASPList element風景Icon category 7ライフハックList elementパソコンList elementツールList elementガジェットList element仕事術List element健康List element生活List element書評List elementExcel(エクセル)List elementPowerPoint(パワーポイント)List elementゲーム制作/開発List elementゲームプランニングList elementSpriteStudioList elementマスターデータ入力/作成List elementUnityList elementキャラクターデザインList elementゲームシナリオList elementレベルデザインList elementゲーム分析List element3DCGList elementイラスト制作List elementCG/アニメーションList elementアプリ開発List element新しいカテゴリ

        人気の記事
        • 26 views
        • 2019-02-12
        カスタマーへの活用促進とヘルススコア
        最近の記事
        • 26 views
        • 2019-02-12
        カスタマーへの活用促進とヘルススコア
        • 108 views
        • 2019-01-08
        日本でもっとカスタマーサクセスを盛り上げよう!!の年末イベント
        • 170 views
        • 2018-12-10
        【Rails】I18nの言語データをDBから取得 / キャッシュ使用【i18n/i18n-active_record】
        • 159 views
        • 2018-12-10
        【Rails】I18nの言語データをDBから取得【i18n/i18n-active_record】
        • 141 views
        • 2018-11-12
        【jQuery】開閉パネルを最初から開いた状態にする
        Facebook

          サイト情報
          • DoRubyとは
          • 株式会社アピリッツ

          企業情報
          • 会社概要
          • 採用情報
          • お問い合わせ

          ソーシャルアカウント
          • Facebook
          • Twitter
          サービス製品
          • コミュニティサイト
          • Android向け ECアプリ制作パッケージ「ポケコマ」
          • レコメンドASP
          • サイト内検索ASP「Advantage Search」
          • オープンソースECサイト構築パッケージ「エレコマ」

          • 受注・在庫・商品情報一元管理「モールコネクター」
          • セキュリティ診断サービス
          • 戦略的EC画面設計・制作サービス
          • Googleアナリティクスセミナー
          • アクセス解析コンサルティング
          • SEOコンサルティング

          Copyright © Appirits All Rights Reserved.