UL/LIタグを使ってリストを表示するときに、 コレクションが空の場合はULタグを表示したくない場合というのが頻繁にあります。 1 <% if @posts.present? %> 2 <ul> 3 <% @posts.each do |post| %> 4 <li><%= h(@post.body) %></li> 5 <% end %> 6 </ul> 7 <% end %> そういう時は、だいたいこんな感じにコードを書きます。 しかし、条件が複雑になってきたり、複数のコレクションを考えなければ行けない場合に、きれいに記述出来なくなってきます。 そんな時は、以下のようなヘルパを使って、分岐条件を遅延評価するようにすると、処理が簡潔になります。 1 module ApplicationHelper 2 def delayed_if(&block) 3 flag = O