タイトルが私の実際の問題を表しているかどうかはわかりませんが、私はプログラミングに比較的慣れていないので、私が思いつくことができる最高のものです. もっといいのあったら教えて?
現在のビューをリファクタリングして、より管理しやすくし、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 枚の写真を参照する必要がある場合。このビューをリファクタリングするより良い方法はありますか? spans8、span4、span4 を変更すると、span4、span4、span8 などが逆になります。