3

次のコードを縮小するにはどうすればよいですか..代わりに1行で実行できますか?

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

ありがとう!

4

2 に答える 2

14

条件演算子 (三項演算子) を使用して 1 行で実行できます。

<% pos_name = (pos_count < 0) ? "SHORT" : "LONG" -%>
于 2012-09-27T19:32:58.800 に答える
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
于 2012-09-27T21:27:42.040 に答える