【问题标题】:Reduce code redundancy减少代码冗余
【发布时间】:2017-05-30 08:55:21
【问题描述】:

我有一个带有以下代码的 Rails 应用程序

            <ul class="sortable grid row">
            <% @videouploads.each do |video_upload| %>
                <% if video_upload.category == 'モノナビ' && video_upload.priority == 1 %>
                    <%= render partial: 'adminrow', :locals => {:video_upload => video_upload } %>
                <% end %>
            <% end %>
            </ul>

我必须为video_upload.priority == 1 编写此代码 10 次,其中优先级从 1 变为 10。如何避免代码重复或者我有什么最好的解决方案?

【问题讨论】:

  • 循环执行?

标签: html ruby-on-rails performance ruby-on-rails-4 optimization


【解决方案1】:

遍历优先级

<% priorities = (1..10).to_a %>
<% priorities.each do |priority| %>
  <ul class="sortable grid row">
    <% @videouploads.each do |video_upload| %>
      <% if video_upload.category == 'モノナビ' && video_upload.priority == priority %>
        <%= render partial: 'adminrow', :locals => {:video_upload => video_upload } %>
      <% end %>
    <% end %>
  </ul>
<% end %>

【讨论】:

    【解决方案2】:
    <% (1..10).each do |inc| %>    
      <ul class="sortable grid row">
        <% @videouploads.each do |video_upload| %>
          <% if video_upload.category == 'モノナビ' && video_upload.priority == inc %>
          <%= render partial: 'adminrow', :locals => {:video_upload => video_upload } %>
          <% end %>
        <% end %>
      </ul>
    <% end %>
    

    这个怎么样?

    【讨论】:

      猜你喜欢
      • 2010-11-09
      • 1970-01-01
      • 1970-01-01
      • 2014-08-28
      • 1970-01-01
      • 2021-12-30
      • 1970-01-01
      • 2018-02-28
      • 1970-01-01
      相关资源
      最近更新 更多