条件轨道视图

时间:2014-11-10 12:21:52

标签: ruby-on-rails zurb-foundation erb

以下代码很快成为我的rails应用程序中的常见主题。在我的视图中,我有一堆处理空数据的条件,以及管理网格的推拉。这只会随着我开始添加其他3个状态而增长。我的问题是这个。在视图或控制器中优雅地管理网格的最佳方法是什么,以便我的观点不会因条件而变得越来越臃肿?

<% if @jobs.where(status: 'published').size == 0 %>
  <div class="row">
    <div class="large-12 columns">
    </div>
  </div>
<% end %>
<% if @jobs.where(status: 'published').size == 1 %> 
  <div class="row">
    <div class="large-4 push-8 columns">

    </div>
  </div>
<% elsif @jobs.where(status: 'published').size == 2 %>
  <div class="row">
    <div class="large-4 push-4 columns">
    </div>
  </div>
<% else %>
  <% @jobs.in_groups_of(3, false) do |row| %>
    <div class="row">
      <% for job in row %>
        <div class="large-4 medium-4 columns">

        </div>
      <% end %>
    </div>
  <% end %>
 <% end %>

1 个答案:

答案 0 :(得分:0)

我认为你应该使用switch case语句来管理多个条件。

 @status = @jobs.where(status: 'published').size

<% case @status %>
 <% when 0 %>
  <div class="row">
    <div class="large-12 columns">
    </div>
  </div>
 <% when 1 %>
  <div class="row">
    <div class="large-4 push-8 columns">
    </div>
  </div>
 <% when 2 %>
  <div class="row">
    <div class="large-4 push-4 columns">
    </div>
  </div>
 <% else %>
  <% @published_jobs.in_groups_of(3, false) do |row| %>
    <div class="row">
      <% for job in row %>
        <div class="large-4 medium-4 columns">

        </div>
      <% end %>
    </div>
  <% end %>

<% end %>