0

簡単な質問です。Rails 3 は初めてですが、次のようなものがあるとします。

<% @array.each do |arr| %>
   <%= arr.thing %>
<% end %>

次のようなことをしたい場合、どうすればきれいにエスケープできますか。

<% @array.each do |arr| %>
   <p><%= if arr.thing 'Read' else 'Unread' %></p> < All in 1 line prints whatever value to a <p></p>
<% end %>

行ってさらにごちゃごちゃさせなくていいように

<% @array.each do |arr| %>
   <%= if arr.thing %>
     <p>Read</p>
   <% else %>
     <p>Unread</p>
   <% end %>
<% end %>

これは可能ですか、Rails 3の三項ステートメントをグーグルで検索してみましたが、探していたようなものが見つかりませんでした。ありがとう!

4

2 に答える 2

2

この種のことは、ヘルパーを介して処理するのが最適です。

<p><%= read_or_unread(arr.thing) %>></p>

ヘルパー:

class SomethingHelper
  def read_or_unread(thing)
    thing ? 'Read' : 'Unread'
  end
end

どこread_or_unreadSomethingHelperは、ドメインに基づいてより意味のある名前が付けられています。追加の複雑なロジックがある場合は、プレゼンター パターンを使用することもできます。

于 2013-06-01T05:00:31.340 に答える
1

それが単なる文字列である場合は、エスケープする必要はありません。三項式は次のとおりです。

<p><%= arr.thing ? 'Read' : 'Unread' %></p>
于 2013-06-01T04:35:23.827 に答える