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という判断。
なんかもっとイケメソ(イケてるメソッド)あったら知りたい。