LoginSignup
0
0

More than 5 years have passed since last update.

0かnilか空文字判定

Last updated at Posted at 2016-10-14

APIの中で処理をするときにpostされた値に対して

  • 数字が来たらtrue(intじゃなくて文字列の場合もある)
  • 0かnilか空文字か数字じゃない文字列だったらfalse

みたいな条件をつくりたくなってしまったときに困ったメモ
(過去のAPIと今のAPIに差分があったりして都合が悪かったという背景)

空文字かnilか

これは

nil.present?    #=> false
''.present? #=> false

なので present? を使えばよさそうだけど

当然文字列だとダメ

'a'.present?    #=> true

0がやっかい

0.present?  #=> true

なので困る

bool値的には扱えない

rubyは

0 == true   #=> false
1 == true   #=> false

なのであてにならない

to_i様様

to_i して > 0 する

0.to_i > 0  #=> false
1.to_i > 0  #=> true
''.to_i > 0 #=> false
'a'.to_i > 0    #=> false
'1'.to_i > 0    #=> true
nil.to_i > 0    #=> false

苦肉の策っぽさある。

'1a'みたいな文字列が来たらtrueになるけどそれはもうそういう意図されたものだからOKという判断。

なんかもっとイケメソ(イケてるメソッド)あったら知りたい。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0