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