nil?はnilだけtrue、empty?よりblank?の方が幅広く使える、present?はblank?の否定
Rubyのメソッドでnil?とempty?とblank?の違いが分からなかったのでまとめました
テストコードのバリデーションで、「リクエストパラメータが空白とかnilとかの場合に、このバリデーションをかけたい!」という判定にはblank?メソッドを使うといいと思います!
nil?メソッド
nil?はnilの時だけtrue
nil.nil?
=> true
[].nil?
=> false
{}.nil?
=> false
"".nil?
=> false
false.nil?
=> false
empty?メソッド
empty?は入れ物はあるが中身がない時true
nil.empty?
=> NoMethodError: undefined method 'empty?' for nil:NilClass
[].empty?
=> true
{}.empty?
=> true
"".empty?
=> true
" ".empty?
=> false
false.empty?
NoMethodError: undefined method `empty?' for false:FalseClass
blank?メソッド
blank?はempty?より範囲が広い
Railsでは使えるけど、rubyだけでは使えない
nil.blank?
=> true
[].blank?
=> true
{}.blank?
=> true
"".blank?
=> true
" ".blank?
=> true
false.blank?
=> true
present?はblank?の否定
参考
http://railsdoc.com/references/blank
おわりに
最後まで読んでいただきありがとうございました。
QiitaやTwitterなどにコメントをしてもらったり、SNSでシェアしてもらえるとうれしいです!
Rubyのメソッドでnil?とempty?とblank?の違いが分からなかったのでまとめました!
— ITのんびり@V字回復エンジニア (@it31415) 2019年5月4日
リクエストパラメータが空白とかnilとかの場合に、このバリデーションをかけたいという判定にはblank?メソッドを使うといいと思います!
Rubyのnil?とempty?とblank?の違いとpresent? https://t.co/ejM7gca0KF #Qiita