krishna krishna - 1 month ago 6
Ruby Question

Rails - map 1 to true in if statement

I am getting a request from mobile app. They are sending a variable

isbookmarked
that can be either
1
or
0
. I am checking in if statement.

if isbookmarked
do something
else
do something
end


The
else
part is never executed because
0
is not recognised as
false


How can I achieve this?

Answer

In Ruby everything is truthy except for nil and false. Thus both 0 and 1 are truthy - you will never reach the else part with this set up.

So in your case you want to check exactly for 0 or 1:

if isbookmarked == 1
  do something
elsif isbookmarked == 0
  do something
end