Home > Mobile >  Ruby check if nil and set different value
Ruby check if nil and set different value

Time:09-19

How can I check if the something is nil and if its nil then use a different function to set value.

Integer($evm.root.attributes["dialog_cloud_network"]) can be nil in some cases and so I want to use a different function query_catalogitem(:cloud_network) to set value.

Example:

cloud_network_id =  Integer($evm.root.attributes["dialog_cloud_network"]) || query_catalogitem(:cloud_network). 

The above doesn't work because cloud_network_id ends with value nil instead of getting the value from query_catalogitem(:cloud_network). How can I resolve this?

CodePudding user response:

I would do

cloud_network_id = $evm.root.attributes["dialog_cloud_network"]&.to_i || 
                   query_catalogitem(:cloud_network)

CodePudding user response:

You need to pass exception: false to Integer

In this case Integer may be nil (if impossible to convert $evm.root.attributes["dialog_cloud_network"] to Integer)

Also is better to specify base (10)

cloud_network_id =
  Integer($evm.root.attributes["dialog_cloud_network"], 10, exception: false) ||
    query_catalogitem(:cloud_network)
  • Related