Rails入門です。
active_supportを読み込んだrubyでは、真偽判定に以下のメソッドが使えます。
nil?
- Rubyの標準メソッド。nilの場合のみtrueを返し、それ以外はfalseを返す。nilとfalseを判別したい場合などに、
==
演算子を使わずに書ける。 empty?
- String や Array に実装されているメソッド。空の文字列や空の配列の場合にtrueを返す。nilに対して呼び出すとNoMethodErrorが発生する。
blank?
nil? or empty?
のようなメソッド。nilまたは空のオブジェクトを判定できる。present?
!blank?
を実行するメソッド。unless hoge.blank?
とするくらいなら、if hoge.present?
としたほうがelsif
も書けるしすっきり。
ActiveRecordの結果がこれらを実装してくれているおかげで、以下のように便利に記述できます。
@users.count == 0
のような無駄な記述がなくてすっきりしていますね。
@users = User.all
if @users.present?
...
else
puts "no users"
end
or
や!
を使いすぎると可読性が下がるので、blank?
とpresent?
は有効活用しましょう!
関連記事
- Rubyにおけるunlessとコードの読みやすさについて
- Haml で閉じタグに悪戦苦闘してRails を学んだお話
- Railsでbefore_filter/before_actionがアクションを中止する仕組みを読んでみる