Ruby and Rails

Ruby と Ruby on Rails のこと

Ruby と Rails の便利な書き方

a ||= b と a || b

a が nil なら初期値を入れたい場合。

a = nil
a = 100 if a.nil? # => 100

a = nil
a ||= 100 #=> 100

と書けます。通称 nil ガード。

nil ガードの逆。すでに値が入っている場合に書き換えたいなら。

a = 100
a = 200 if a.present? #=> 200

a = 100
a || 200 #=> 200

と書けます。a が nil なら nil のまま。

Rails.root

Rails.root.join('tmp', 'foo', 'bar')

Rails.root / 'tmp/foo/bar'

と書けます。

try にメソッドの引数やハッシュのキーを渡す

メソッドの引数

date.present? ? date.strftime('%Y-%m-%dT%T') : nil

date.try(:strftime, '%Y-%m-%dT%T')

と書けます。

ハッシュのキー

ハッシュがあるかどうかは :[] を使います。

html.match(%r|^(?<body>.+?)$|).try(:[], :body)

参考文献