С рубиновым тернарным оператором мы можем написать следующую логику для простой конструкции else:
a = true ? 'a' : 'b' #=> "a"
Но что, если я хотел написать это как if foo 'a' elsif bar 'b' else 'c'
?
Я мог бы написать это как следующее, но это немного сложно:
foo = true
a = foo ? 'a' : (bar ? 'b' : 'c') #=> "a"
foo = false
bar = true
a = foo ? 'a' : (bar ? 'b' : 'c') #=> "b"
Есть ли какие-либо лучшие варианты для обработки такого сценария или это лучший выбор, если мы хотим сконденсировать if..sel..else логику в одну строку?