nil?またはempty?を判定するblank?

  • プログラムの中で、中身が無ければデフォルト値を使う、というのはよくある処理かと。例えばCSVサーバーでは、以下のように使っていた。
sort_field = default_user['sort_field'] if sort_field.empty?
  • でも、これだと変数sort_fieldがnilの場合*1は、エラーが発生してしまう...。それを避けるため、以下のようにしていた。
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?
  • そうしているうちに、Railsblank?メソッドの存在を知る。以下のように書けば良かったのだ!
params[:sort_field] = default_user['sort_field'] if params[:sort_field].blank?


とても晴々した気分です!(全部書き直してしまった。)

参考ページ

以下のページが大変参考になりました。感謝です!

*1:変数sort_fieldが一度も定義されずにsort_field.empty?を実行してしまう場合