下面的代码正在迅速成为我的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 %>发布于 2014-11-10 20:46:27
我认为你应该使用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 %>https://stackoverflow.com/questions/26843729
复制相似问题