1

我必须编写以下代码 15 次,唯一的变化是属性名称中的数字(1 到 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 回答