如何縮小下面的代碼。是否可以在一行代替?收縮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