如何在一行内编写这个`if语句`?

HUS*_*TEN 1 ruby-on-rails ruby-on-rails-3

有没有办法在一行中对此进行编码?有点像<%="A"如果.......>

<% if @box == 'inbox' && m.is_read?(current_user) %>
A
<% else %>
B
<% end %> 
Run Code Online (Sandbox Code Playgroud)

slh*_*hck 5

你需要一个三元运算符 - 在Ruby中也称为"条件"运算符,如果前面的表达式?为真,则返回"A" ,如果表达式为假,则返回"B".

<%= (@box == 'inbox' && m.is_read?(current_user)) ? "A" : "B" %>
Run Code Online (Sandbox Code Playgroud)

  • @HUSTEN我明白了......欢迎你.但需要注意的是:Ruby程序员 - 通常是任何需要在以后维护代码的人 - 可能会将可读性与*看起来"复杂"的任何东西进行交易,只是为了它. (2认同)