Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 收缩RubyonRails IF-ELSE代码_Ruby On Rails_If Statement - Fatal编程技术网

Ruby on rails 收缩RubyonRails IF-ELSE代码

Ruby on rails 收缩RubyonRails IF-ELSE代码,ruby-on-rails,if-statement,Ruby On Rails,If Statement,如何收缩以下代码。。可以用一行来代替吗 <% if pos_count < 0 %> <% pos_name = "SHORT" %> <% else %> <% pos_name = "LONG" %> <% end %> 谢谢 可以使用条件运算符(三元运算符)在一行中完成: 看起来像这样的视图逻辑,最佳做法是将其最小化。我建议将其提取到视图帮助器(或者装饰器,如果您愿意的话) 正如Istvan所建议的,您可以

如何收缩以下代码。。可以用一行来代替吗

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


谢谢

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


看起来像这样的视图逻辑,最佳做法是将其最小化。我建议将其提取到视图帮助器(或者装饰器,如果您愿意的话)

正如Istvan所建议的,您可以使用三元运算符,但为了可读性,我将其保留为else语句,并将其移动到如下方法中:

app/helpers/my_view_helper.rb

module MyViewHelper
  def pos_name(pos_count)
    if pos_count < 0
      "SHORT"
    else
      "LONG"
    end
  end
end
模块MyViewHelper
def pos_名称(pos_计数)
如果pos_计数<0
“短”
其他的
“长”
结束
结束
结束

+1关于将视图逻辑提取到视图帮助程序中。随着项目的发展,还可以使用视图演示者:这听起来像是一个很好的实践。。然后我可以在视图中这样调用该方法吗:pos\u count.pos\u name?@twidrd您可以在视图中像
pos\u name(pos\u count)
那样调用它。我已经更新了上面的代码来反映这一点。
module MyViewHelper
  def pos_name(pos_count)
    if pos_count < 0
      "SHORT"
    else
      "LONG"
    end
  end
end