在Ruby中编写三元组的最短方法是返回nil的其他值?

Coo*_*ama 2 ruby ruby-on-rails

通常我想写一些返回"是"的东西,如果true,"否"如果false,或"NA"(或任何其他字符串真的)if nil.目前我这样做:

@contact.boolean ? 'Yes' : (@contact.boolean.nil? ? "NA" : "No")
Run Code Online (Sandbox Code Playgroud)

这是写这个的最短路吗?

Jas*_*ett 9

这是一个想法:

> {true => "Yes", false => "No", nil => "N/A"}[true]
 => "Yes" 
Run Code Online (Sandbox Code Playgroud)

所以,当然,你会这样做 {true => "Yes", false => "No", nil => "N/A"}[value]