我不确定这个标题是否代表了我的实际问题,但由于我对编程比较陌生,所以这是我能想到的最好的。让我知道你是否有更好的东西?
我想重构我当前的视图,使其更易于管理并与 DRY 方法保持一致。
我的观点:
<div class="row">
<div class="span8">
<% @photos.each_with_index do |photo, index| %>
<% if index == 0 %>
<!-- <h1><%= photo.title %></h1> -->
<img src="<%= photo.image_url.to_s %>">
<% end %>
<% end %>
</div>
<div class="span4">
<% @photos.each_with_index do |photo, index| %>
<% if index == 2 %>
<!-- <h1><%= photo.title %></h1> -->
<img src="<%= photo.image_url.to_s %>">
<% end %>
<% end %>
</div>
<div class="span4">
<% @photos.each_with_index do |photo, index| %>
<% if index == 3 %>
<!-- <h1><%= photo.title %></h1> -->
<img src="<%= photo.image_url.to_s %>">
<% end %>
<% end %>
</div>
</div><!--/.row -->
<div class="row">
<div class="span8 pull-right">
<% @photos.each_with_index do |photo, index| %>
<% if index == 4 %>
<!-- <h1><%= photo.title %></h1> -->
<img src="<%= photo.image_url.to_s %>">
<% end %>
<% end %>
</div>
<div class="span4">
<% @photos.each_with_index do |photo, index| %>
<% if index == 2 %>
<!-- <h1><%= photo.title %></h1> -->
<img src="<%= photo.image_url.to_s %>">
<% end %>
<% end %>
</div>
<div class="span4">
<% @photos.each_with_index do |photo, index| %>
<% if index == 3 %>
<!-- <h1><%= photo.title %></h1> -->
<img src="<%= photo.image_url.to_s %>">
<% end %>
<% end %>
</div>
</div><!--/.row -->
我的控制器:
def index
if params[:tag]
@photos = Photo.tagged_with(params[:tag])
else
@photos = Photo.order("created_at DESC")
end
respond_to do |format|
format.html # index.html.erb
format.json { render json: @photos }
end
end
如果我只是想展示几张照片,这不是问题。但是,由于此视图本质上是上传的每张照片的提要,因此很快就会变得难以管理。尤其是当我必须参考 100/1000/10,000 张照片及其索引时。有没有更好的方法来重构这个视图?请记住不断变化的 span8、span4、span4,然后将它们反转为 span4、span4、span8 等等。