2013年2月24日日曜日

active support 便利関数 try

関連テーブルのフィールド情報を取りにいくとき、関連テーブルが無いとき例外が発生しますようね。

   Image.all{|image|
                 image.book.title
          }
関連するbookが無い場合例外が発生。今までは以下のようにしていました。

   Image.all{|image|
                 image.book.title if image.book.present?
          }
tryを使うと少ないコードですみます

   Image.all{|image|
                 image.book.try(:title)
          }
かなりいいです。感動!

param情報にもつかます。
paramのハッシュ:search の中の:locationNmaにアクセスするとき
params["search"]["locationName"] if params["search"].present?

tryを使うと
params["search"].try(:[],:locationName)

いい感じです。

0 件のコメント:

コメントを投稿