[8] pry(#<Plan>)> self[:total_outstanding]||0 / self.dd_amount
=> 10100.0
[9] pry(#<Plan>)> self[:total_outstanding]||0
=> 10100.0
[10] pry(#<Plan>)> self.dd_amount
=> 900.0
[11] pry(#<Plan>)> self[:total_outstanding].to_i||0/self.dd_amount.to_i
=> 10100
self[:total_outstanding].to_i||0/self.dd_amount.to_i should reuturn 11 instead of 10100 which the value of the first attribute
I am trying to debug this in a pry session
When the code ran it did consider the value as 10100 which is just wrong..
The OR operator (
||
) has lower precedence than the division operator (/
).Ruby is interpreting your last line as this:
This will just return
self[:total_outstanding].to_i
, because it is a truthy value.Group
self[:total_outstanding].to_i||0
together like this: