The ternary operator in Ruby is a C-style conditional expression that allows you to quickly define a conditional.
You only need one line and it comes in handy when you need to do a variable assignment based on a condition.
The expression takes the form of:
<condition> ? <value if true> : <value if false>.
Let’s for example say that we want to assign the name of a bird based on the trait that it flies.
Instead of writing an if/else like this.
name = if bird.can_fly 'Pidgin' else 'Ostrich' end
You can write it as follows with the ternary operator.
name = bird.can_fly ? 'Pidgin' : 'Ostrich'
Nested Ternary Operator
If you want to go crazy you can nest a ternary operator as well, since it’s just an expression.
name = bird.can_fly ? 'Pidgin' : (bird.can_swin ? 'Penguin' : 'Ostrich')