1

属性名の数字 (1 から 15) を変更するだけで、次のコードを 15 回記述する必要があります。

<% unless @post.poll.answer_1.blank? %>
  <tr>
    <td class="answer">
     <b><%= @post.poll.answer_1 %></b> - <%= pluralize(@post.poll.answer_1_votes_count, "stem", "stemmen") %>
   </td>
 </tr>
<% end %>

これを行うための最良の DRY 方法は何ですか?

ありがとうございました。

4

1 に答える 1

3

sendObject クラスのメソッドを使用するだけです:

<% (1..15).each do |num| %>
 <% unless @post.poll.send("answer_#{num}").blank? %>
   <tr>
     <td class="answer">
      <b><%= @post.poll.send("answer_#{num}") %></b> - <%= pluralize(@post.poll.send("answer_#{num}_votes_count"), "stem", "stemmen") %>
    </td>
  </tr>
 <% end %>
<% end %>
于 2013-10-27T10:41:31.577 に答える