nil?またはempty?を判定するblank?
- プログラムの中で、中身が無ければデフォルト値を使う、というのはよくある処理かと。例えばCSVサーバーでは、以下のように使っていた。
sort_field = default_user['sort_field'] if sort_field.empty?
sort_field = default_user['sort_field'] if sort_field.nil? || sort_field.empty?
- まあ、簡潔といえば簡潔なんだが、params[:sort_field]だったりすると、1行が長くなり過ぎることが気になり始める。かといって、2行に分けるのも悔しい...。
params[:sort_field] = default_user['sort_field'] if params[:sort_field].nil? || params[:sort_field].empty?
- そうしているうちに、Railsのblank?メソッドの存在を知る。以下のように書けば良かったのだ!
params[:sort_field] = default_user['sort_field'] if params[:sort_field].blank?
とても晴々した気分です!(全部書き直してしまった。)
*1:変数sort_fieldが一度も定義されずにsort_field.empty?を実行してしまう場合