Reputation: 796
I am trying to imitate the following code and image:
<div class="container content">
<div class="text-center margin-bottom-50">
<h2 class="title-v2 title-center">FOUR COLUMNS</h2>
<p class="space-lg-hor">If you are going to use a <span class="color-green">passage of Lorem Ipsum</span>, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making <span class="color-green">this the first</span> true generator on the Internet.</p>
</div>
<div class="row margin-bottom-30">
<div class="col-sm-3 sm-margin-bottom-30">
<a href="assets/img/main/img12.jpg" rel="gallery2" class="fancybox img-hover-v1" title="Image 1">
<span><img class="img-responsive" src="assets/img/main/img12.jpg" alt=""></span>
</a>
</div>
<div class="col-sm-3 sm-margin-bottom-30">
<a href="assets/img/main/img13.jpg" rel="gallery2" class="fancybox img-hover-v1" title="Image 2">
<span><img class="img-responsive" src="assets/img/main/img13.jpg" alt=""></span>
</a>
</div>
<div class="col-sm-3">
<a href="assets/img/main/img14.jpg" rel="gallery2" class="fancybox img-hover-v1" title="Image 3">
<span><img class="img-responsive" src="assets/img/main/img14.jpg" alt=""></span>
</a>
</div>
<div class="col-sm-3 sm-margin-bottom-30">
<a href="assets/img/main/img15.jpg" rel="gallery2" class="fancybox img-hover-v1" title="Image 4">
<span><img class="img-responsive" src="assets/img/main/img15.jpg" alt=""></span>
</a>
</div>
</div>
<div class="row margin-bottom-30">
<div class="col-sm-3 sm-margin-bottom-30">
<a href="assets/img/main/img17.jpg" rel="gallery2" class="fancybox img-hover-v1" title="Image 5">
<span><img class="img-responsive" src="assets/img/main/img17.jpg" alt=""></span>
</a>
</div>
<div class="col-sm-3 sm-margin-bottom-30">
<a href="assets/img/main/img18.jpg" rel="gallery2" class="fancybox img-hover-v1" title="Image 6">
<span><img class="img-responsive" src="assets/img/main/img18.jpg" alt=""></span>
</a>
</div>
<div class="col-sm-3">
<a href="assets/img/main/img19.jpg" rel="gallery2" class="fancybox img-hover-v1" title="Image 7">
<span><img class="img-responsive" src="assets/img/main/img19.jpg" alt=""></span>
</a>
</div>
<div class="col-sm-3 sm-margin-bottom-30">
<a href="assets/img/main/img20.jpg" rel="gallery2" class="fancybox img-hover-v1" title="Image 8">
<span><img class="img-responsive" src="assets/img/main/img20.jpg" alt=""></span>
</a>
</div>
</div>
<div class="row">
<div class="col-sm-3 sm-margin-bottom-30">
<a href="assets/img/main/img21.jpg" rel="gallery2" class="fancybox img-hover-v1" title="Image 9">
<span><img class="img-responsive" src="assets/img/main/img21.jpg" alt=""></span>
</a>
</div>
<div class="col-sm-3 sm-margin-bottom-30">
<a href="assets/img/main/img22.jpg" rel="gallery2" class="fancybox img-hover-v1" title="Image 10">
<span><img class="img-responsive" src="assets/img/main/img22.jpg" alt=""></span>
</a>
</div>
<div class="col-sm-3">
<a href="assets/img/main/img23.jpg" rel="gallery2" class="fancybox img-hover-v1" title="Image 11">
<span><img class="img-responsive" src="assets/img/main/img23.jpg" alt=""></span>
</a>
</div>
<div class="col-sm-3 sm-margin-bottom-30">
<a href="assets/img/main/img24.jpg" rel="gallery2" class="fancybox img-hover-v1" title="Image 12">
<span><img class="img-responsive" src="assets/img/main/img24.jpg" alt=""></span>
</a>
</div>
</div>
</div>
<!-- End Four Columns -->
In my code I am able to accomplish part of what I want to do as the images are being rendered on the page:
<!-- Four Columns -->
<div class="container content">
<div class="text-center margin-bottom-50">
<h2 class="title-v2 title-center">Take a look!</h2>
<p class="space-lg-hor">If you are going to use a <span class="color-green">passage of Lorem Ipsum</span>, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making <span class="color-green">this the first</span> true generator on the Internet.</p>
</div>
<% @current.each do |gallery| %>
<div class="row margin-bottom-30">
<div class="col-sm-3 sm-margin-bottom-30">
<%= link_to gallery.image.url, :class => "fancybox img-hover-v1" do %>
<span><%= image_tag gallery.image, :class => "img-responsive" %></span>
<%end%>
</div>
<%end%>
</div>
</div>
<!-- End Four Columns -->
Here is my outcome though as you will notice it is uneven and the next row that starts is off:
Here is what my view page source html looks like:
<!-- Four Columns -->
<div class="container content">
<div class="text-center margin-bottom-50">
<h2 class="title-v2 title-center">Take a look!</h2>
<p class="space-lg-hor">If you are going to use a <span class="color-green">passage of Lorem Ipsum</span>, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making <span class="color-green">this the first</span> true generator on the Internet.</p>
</div>
<div class="row margin-bottom-30">
<div class="col-sm-3 sm-margin-bottom-30">
<a class="fancybox img-hover-v1" href="/system/galleries/images/000/000/008/original/GONZALO_%2822%29.JPG?1503775340">
<span><img class="img-responsive" src="/system/galleries/images/000/000/008/original/GONZALO_%2822%29.JPG?1503775340" alt="Gonzalo %2822%29" /></span>
</a> </div>
<div class="col-sm-3 sm-margin-bottom-30">
<a class="fancybox img-hover-v1" href="/system/galleries/images/000/000/007/original/Staples_Center_Bus_Bench.JPG?1503775325">
<span><img class="img-responsive" src="/system/galleries/images/000/000/007/original/Staples_Center_Bus_Bench.JPG?1503775325" alt="Staples center bus bench" /></span>
</a> </div>
<div class="col-sm-3 sm-margin-bottom-30">
<a class="fancybox img-hover-v1" href="/system/galleries/images/000/000/006/original/pexels-photo-323503.jpeg?1503775253">
<span><img class="img-responsive" src="/system/galleries/images/000/000/006/original/pexels-photo-323503.jpeg?1503775253" alt="Pexels photo 323503" /></span>
</a> </div>
<div class="col-sm-3 sm-margin-bottom-30">
<a class="fancybox img-hover-v1" href="/system/galleries/images/000/000/005/original/pexels-photo-532254.jpeg?1503775241">
<span><img class="img-responsive" src="/system/galleries/images/000/000/005/original/pexels-photo-532254.jpeg?1503775241" alt="Pexels photo 532254" /></span>
</a> </div>
<div class="col-sm-3 sm-margin-bottom-30">
<a class="fancybox img-hover-v1" href="/system/galleries/images/000/000/001/original/BERONICA_%286%29.JPG?1503774118">
<span><img class="img-responsive" src="/system/galleries/images/000/000/001/original/BERONICA_%286%29.JPG?1503774118" alt="Beronica %286%29" /></span>
</a> </div>
</div>
</div>
<!-- End Four Columns -->
There are no errors in my console pertaining to this issue. What I am trying to do is continue the html code sequence that after four images it starts a new row spaced and from the left not right. In the code I am imitating after four images it starts a new section. I do not know how to do it with my situation which is I am using a for each to render my images.
UPDATE
I was able to find this Ruby on rails foreach with bootstrap3 row class but when I tried to implement it with this code:
<% @current.each_slice(3) do |gallery| %>
<div class="row margin-bottom-30">
<% @current.each do |gallery| %>
<div class="col-sm-3 sm-margin-bottom-30">
<%= link_to gallery.image.url, :class => "fancybox img-hover-v1" do %>
<span><%= image_tag gallery.image, :class => "img-responsive" %></span>
<%end%>
</div>
<%end%>
</div>
<%end%>
I got this result:
As you can see it just duplicates the first part. Here is my controller if this helps:
class CreativesController < ApplicationController
layout "creative"
def index
@campaigns = storage.list_for(params[:page], params[:tag])
@campaigned = Campaign.order("created_at DESC").limit(6)
@recent = Campaign.order("created_at DESC").limit(3)
end
# GET /posts/1
# GET /posts/1.json
def show
@campaign = storage.friendly.find(params[:id])
@gallery = storage.friendly.find(params[:id])
end
def gallery
@galleries = storage.list_for(params[:page], params[:tag])
@galleried = Gallery.order("created_at DESC")
@current = Gallery.order("created_at DESC")
end
private
def storage
Campaign.published
Gallery.published
end
end
Upvotes: 0
Views: 68
Reputation: 1385
You have to slice your gallery items to 4 items then do your loop:
<!-- Four Columns -->
<div class="container content">
<% @current.each_slice(4) do |slice| %>
<div class="row margin-bottom-30">
<% slice.each do |gallery| %>
<div class="col-sm-3 sm-margin-bottom-30">
<%= link_to gallery.image.url, :class => "fancybox img-hover-v1" do %>
<span><%= image_tag gallery.image, :class => "img-responsive" %></span>
<% end %>
</div>
<% end %>
</div>
<% end %>
</div>
<!-- End Four Columns -->
Upvotes: 0
Reputation: 130
Try this:
<% @current.each_slice(4) do |galleries| %>
<div class="row margin-bottom-30">
<% galleries.each do |gallery| %>
<div class="col-sm-3 sm-margin-bottom-30">
<%= link_to gallery.image.url, :class => "fancybox img-hover-v1" do %>
<span><%= image_tag gallery.image, :class => "img-responsive" %></span>
<%end%>
</div>
<%end%>
</div>
<%end%>
Upvotes: 1