IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

Inst. Tech View

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  OpenStack  システムトラブルシュート 

第36回 Ruby on Rails 4.1の新機能について 2014年4月

 今回のInst. Tech Viewは、Ruby on Rails 4.1の新機能についてです。

 先日、Ruby on Rails 4.1のリリースがアナウンスされており、「gem install rails」を実行すると4.1のバージョンがインストールされるようになりました。2013年6月にRuby on Rails 4.0をリリースしてから約9ヶ月でのマイナーリリースとなります。

 4.1のリリースノートは以下のURLからアクセスできます。
 http://edgeguides.rubyonrails.org/4_1_release_notes.html

 今回はこの中でも代表的な3つの新機能について紹介したいと思います。

  • Action Pack Variants
  • Active Record Enums
  • Action Mailer Previews
Action Pack Variants

 これはスマートフォンやタブレット、デスクトップブラウザなどで異なるビューテンプレートを用いるための機能です。variantの機能により、使用する端末に応じて表示結果を簡単に切り替えることができます。

 リリースノートのサンプルコードを示します。


| request.variant = :tablet if request.user_agent =~ /iPad/

 これは、ユーザエージェントに「iPad」が含まれる場合にvariantの値に「:tablet」を設定します。以下のようにタブレット用のビューテンプレートを用意しておくことができます。(variantoの値によって使用するビューテンプレートを切り替えることができます。)


| app/views/projects/show.html.erb        # デフォルトのビューテンプレート
| app/views/projects/show.html+tablet.erb # variantの値が「:tablet」の時
| app/views/projects/show.html+phone.erb  # variantの値が「:phone」の時
Action Mailer Previews

 これはAction Mailerでメール送信機能を利用しているときに、SMTPサーバを用いなくても配信されるメールの内容を確認できる機能です。今までは動作確認を行う上でも必ずSMTPサーバの指定が必要でした。
 このPreview機能が提供されたおかげで、わざわざSMTPサーバを用意しなくてもどのようなメールが届くのかを確認できるようになります。

 リリースノートのサンプルコードを示します。


| class NotifierPreview < ActionMailer::Preview
|   def welcome
|     Notifier.welcome(User.first)
|   end
| end

 確認画面は以下のURLにアクセスすることで送られてくるメールのプレビューを見ることができます。
 http://localhost:3000/rails/mailers/notifier/welcome

Active Record Enums

 これはActive Recordで列挙型(enumerated type)を使用するための機能です。
 似たような種類のデータ型としてはブーリアン型(boolean type)がありますが、ブーリアン型は真(true)、偽(false)の2値しかとることができません。列挙型を使用すれば数種類の値を自由に指定することができます。
 たとえば、カレンダーであれば月を表す12種の値を表現したり、オブジェクトの状態を列挙型で表現できます。

 リリースノートのものとは異なる例で解説します。


| # Calenderクラスの定義(..の部分に残りの月も記述しますが、今回は割愛します。)
| class Calender < ActiveRecord::Base
|   enum month: [ january: 1, february: 2, .. , november: 11, december: 12]
| end

 上記のコードにより、Calenderモデルにmonthメソッドが使用できるようになります。


| # monthに"april"を設定
| cal = Calender.new(:month => "april")
| cal.march?      #=> false
| cal.month       #=> "april"

| # monthに"may"を設定 | cal.may! | cal.may? #=> true | may_days = Calender.may #=> monthが"may"のモデルをすべて取得

 列挙型で指定したフィールド(テーブルのカラム)にはハッシュで指定した値である月の整数が格納されます。

 以上、Ruby on Rails 4.1の新機能のごく一部を紹介いたしましたが、これらの詳細については弊社開催の「Ruby on Rails Webアプリケーション開発入門」で紹介しています。Ruby on Railsでは上記で紹介したもの以外にも非常に魅力的な機能が備わっています。
 Ruby on Railsの導入を検討されている方やご興味を持っていただいた方のご受講を心よりお待ち申し上げております。

■■■ コースの詳細情報はこちら ■■■  ※価格はメルマガ配信時点の価格です。

R018:Ruby on Rails Webアプリケーション開発入門
期間:3日間
価格:\150,000(税抜)

 


 

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  OpenStack  システムトラブルシュート