CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
10月中旬から11月の頭にかけて、Rails3.2系及び4.0系のアップデートがそれぞれ行われました。
Rails3.2系は3.2.15がリリースされ、56件のバグフィックスや機能改修の他、ActionMailerのDoS攻撃脆弱性に対するセキュリティフィックスが含まれています。Rails3.2系をお使いの方は3.2.15にアップデートすることをお勧めします。
Rails4.0系は4.0.1がリリースされています。本リリースでは3.2系で先行して修正されたものも含め、460件以上のバグフィックス・機能改修が行われています。リリースの告知(*1)では重要な変更として、ActiveRecordのorderに関する仕様変更が取り上げられています。
User.order("name asc").order("created_at desc")
# 発行されるSQL(Rails4.0.0の場合) # SELECT* FROM users ORDER BY created_at desc, name asc
# 発行されるSQL(Rails4.0.1及びRails3系の場合) # SELECT* FROM users ORDER BY name asc, created_at desc
その他の変更はGitHub上のChangeLogなどをご覧ください。
さて今回は、Google Chromeの開発者ツールにRailsのリクエストまわりの情報を表示させるツールRailsPanel(*2)をご紹介します。
Chromeの開発者ツールは、フロントエンドの検証をする上で非常に強力なツールです。画面上でHTML・StyleSheet・JavaScriptをいじれるため、デバッグやちょっとした動作確認などWebアプリケーションを開発したことのある人であれば一度はお世話になっていることでしょう(*3)。
ただ、当然と言えば当然ですがサーバサイドであるRailsの情報はブラウザ側で知ることができないため、別途コンソールやエディタなどを操作する必要があります。
RailsPanelを使用すると、Chromeの開発者ツール上でRails部分の情報を見ることができるそうなので、早速使ってみました。
尚、今回の動作環境は以下の通りです(*4)。
まずはお決まりのインストールですね。RailsPanelを使用する場合はChrome拡張機能のインストールと、Rails側でのGem導入と二つの作業が必要になります。
Chrome拡張機能のインストールはChromeウェブストア(*5)から行います。
Rails側の導入は「/Gemfile」に以下を記載して「bundle install」を実行します。
group :development do gem "meta_request" end
インストール後、サーバを起動しChromeで開発者ツールを開くとRailsというタブが増えているのが分かるかと思います。
Railsタブ内の左側がリクエストの一覧、右側が各リクエストの詳細情報となっています。リクエストの詳細情報には以下のものが存在します。
よく使いそうなのはやはりParamsとDBでしょうか。Logも使い方によってはすごく便利そうですが、執筆時現在の最新バージョン(*6)ではバグで何も表示されないようです(*7)。
また、View(*8)に関してはファイルパスの表示部分にリンクが設定されており、該当ファイルをエディタで開くことができます(*9)。
尚、このリンクのURLスキームはデフォルトでは「txmt://」ですが、変更することも可能です。変更する場合はChromeの設定 → 拡張機能 → RailsPanelのオプションの順に開き、使用したいものを選択します。
以上、簡単ではございますがRailsPanelのご紹介をしてきました。
以前ご紹介した「Better Errors」「Rails Footnotes」と合わせてRailsデバッグ三種の神器(!)、だと個人的には思っています。これらのツールを上手に組み合わせて、より手軽に楽しく開発していきたいですね。皆さんも是非お試しください。
それでは、Enjoy Ruby!
*1:http://weblog.rubyonrails.org/2013/11/1/Rails-4-0-1-has-been-released/
*2:https://github.com/dejan/rails_panel
*3:もちろん、FireFoxなどを使われている方もいると思いますが...。
*4:Ruby1.9.3、Rails3系でも動作するみたいです。
*5:https://chrome.google.com/webstore/detail/railspanel/gjpfobpafnhjhbajcjgccbbdofdckggg
*6:RailsPanel 0.1.7、MetaRequest 0.2.8
*7:https://github.com/dejan/rails_panel/issues/64
*8:前述の通りバグで何も表示されませんが、ソースを見る限りはLogに関してもViewと同様にリンクが設定されてそうです。
*9:URLスキームとエディタを関連付けておく必要があります。
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes