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
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)