空の値をつかった条件分岐
指定したカラムの値が空のときは......、のような条件づけをするときの""(ダブルクォートのみ)とnilについて。
if column_name == ""
...
end
と
if colimn_name == nil
...
end
の違い。
insertするとき、カラムは指定して値にシングルクォートのみを入れたときは""でカラムを指定せず何も入力しなかったらnil。
条件をつけたとき、前者は
['column_name'] == "" が trueで ['column_name'] == nil だと false。
後者は
['column_name'] == nil が trueで ['column_name'] == ""だとfalse になる。
例
create table addresses (
name text,
address1 text,
address2 text
);
insert into addresses (name,address1) values
('Taro Yamada' , '1-2-3 ooo-cho');
ならaddress2はnilがtrue。
insert into addresses (name,address1,address2) values
('Ichiro Suzuki' , '4-5-6 ooo-cho' , ' ');
ならaddress2は""がtrue。
ruby 2.3.1
postgeSQL 9.6