收缩Ruby on Rails IF-ELSE代码

时间:2012-09-27 19:28:42

标签: ruby-on-rails if-statement

如何缩小以下代码..可以在一行中完成吗?

<% if pos_count < 0 %>
  <% pos_name = "SHORT" %>
  <% else %>
  <% pos_name = "LONG" %>
<% end %>

谢谢!

2 个答案:

答案 0 :(得分:14)

可以使用条件运算符(它是三元运算符)在一行中完成:

<% pos_name = (pos_count < 0) ? "SHORT" : "LONG" -%>

答案 1 :(得分:1)

看起来这个视图逻辑,最佳实践是最小化它。我建议将其解析为视图助手(如果您愿意,可以将装饰器提取出来)。

正如Istvan所说,建议您可以使用三元运算符,但为了便于阅读,我会将其保留为if-else语句并将其移动到类似的方法中:

应用程序/助手/ my_view_helper.rb

module MyViewHelper
  def pos_name(pos_count)
    if pos_count < 0
      "SHORT"
    else
      "LONG"
    end
  end
end