1

タイトルが私の実際の問題を表しているかどうかはわかりませんが、私はプログラミングに比較的慣れていないので、私が思いつくことができる最高のものです. もっといいのあったら教えて?

現在のビューをリファクタリングして、より管理しやすくし、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 などが逆になります。

4

1 に答える 1

1

これを試して:

<% @photos.each_with_index do |photo, index| %>
  <div class="row">
    <div class="span<%= cycle(8, 4, 4) %>">
      <!-- <h1><%= photo.title %></h1> -->
      <img src="<%= photo.image_url.to_s %>">
    </div>
  </div>
<% end %>
于 2012-12-16T07:23:29.893 に答える