如何缩小下面的代码。是否可以在一行代替?收缩Ruby on Rails IF-ELSE代码
<% if pos_count < 0 %>
<% pos_name = "SHORT" %>
<% else %>
<% pos_name = "LONG" %>
<% end %>
谢谢!
如何缩小下面的代码。是否可以在一行代替?收缩Ruby on Rails IF-ELSE代码
<% if pos_count < 0 %>
<% pos_name = "SHORT" %>
<% else %>
<% pos_name = "LONG" %>
<% end %>
谢谢!
它可以在一个行完成与条件运算(这是一个三元运算符):
<% pos_name = (pos_count < 0) ? "SHORT" : "LONG" -%>
看起来这视图的逻辑,和最好的做法是将其最小化。我会建议解压缩到一个视图助手(或装饰者,如果你喜欢)。
由于伊什特万,建议您可以使用三元运算符,但可读性我只想把它作为if-else语句,并将其移动到一个方法,像这样:
应用程序/佣工/ my_view_helper.rb
module MyViewHelper
def pos_name(pos_count)
if pos_count < 0
"SHORT"
else
"LONG"
end
end
end
+1在提取视图助手的视图逻辑。 随着项目的增长,还可以使用查看演示者: http://railscasts.com/episodes/286-draper?autoplay=true – andreiursan
听起来像是一种很好的做法..那么我可以在查看:pos_count.pos_name? – Twiddr
@Twiddr你可以在视图中将它称为'pos_name(pos_count)'。我更新了上面的代码以反映这一点。 – gylaz
完美..只是我需要..谢谢.. – Twiddr