2016-07-13 72 views
2

我正在开发一个项目,其中包含多个图片。我有Bootstrap正在处理我的项目,并试图在使用this tutorial的轮播中工作。它似乎是适合我需求的理想选择,但我无法将其混入到我的Ruby视图中。下面是我到目前为止有:Bootstrap Carousel in Rails

<div id="myCarousel" class="carousel slide" data-ride="carousel"> 
    <!-- Indicators --> 
    <ol class="carousel-indicators"> 
    <% @patient.images.each do |image| %> 
    <li data-target="#myCarousel" data-slide-to="0" class="active"></li> 
    <% end %> 
    </ol> 

    <!-- Wrapper for slides --> 

     <div class="carousel-inner" role="listbox"> 
     <div class="item active"> 
     <% @patient.images.each do |image| %> 
     <%= image_tag image.image_file.url %> 
     <% end %> 
     </div> 
     </div> 


<!-- Left and right controls --> 
    <a class="left carousel-control" href="#myCarousel" role="button" data-slide="prev"> 
    <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span> 
    <span class="sr-only">Previous</span> 
    </a> 
    <a class="right carousel-control" href="#myCarousel" role="button" data-slide="next"> 
    <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span> 
    <span class="sr-only">Next</span> 
    </a> 
</div> 
</div> 

我想我有一个语法/顺序问题,即我的div和我的形象标签撒谎,但走动他们不会改变任何东西。我想要做的是为每张图片分别放置一张幻灯片,但使用当前代码似乎希望将所有图片放在一张幻灯片中。

回答

1

这是我做的:

<ol class="carousel-indicators"> 
    <% @patient.images.each_with_index do |photo, n| %> 
    <li data-target='#MyCarousel' data-slide-to="#{n}" class="#{'active' if n == 0}"></li> 
    <% end %> 
</ol> 

<div class="carousel-inner" role="listbox"> 
    <div class="item active"> 
    <%= image_tag @patient.images.first.image_file.url %> 
    </div> 
    <% @patient.images.drop(1).each do |photo| %> 
    <div class="item"> 
     <%= image_tag photo.image_file.url %> 
    </div> 
    <% end %> 
</div> 
+0

这是我最终使用得更紧密的答案。 @Ren有一些错误,我不能编辑,因为它少于6个字符 - 第二行关闭红宝石标签,第八行相同 – PSCampbell

+0

oops,我为你修复了这些错误。我不得不从苗条转换代码,因此错误。很高兴我的回答很有用! – Ren

+0

没问题我很容易抓住他们,只是为未来的绊脚石做笔记。 – PSCampbell

6

这一部分:

<ol class="carousel-indicators"> 
    <% @patient.images.each do |image| %> 
    <li data-target="#myCarousel" data-slide-to="0" class="active"></li> 
    <% end %> 
</ol> 

需要改变的东西,如:

<ol class="carousel-indicators"> 
    <% @patient.images.each_with_index do |image, index| %> 
    <li data-target="#myCarousel" data-slide-to="<%= index %>" class="<%= index == 0 ? 'active' : '' %>"></li> 
    <% end %> 
</ol> 

这部分:

<div class="carousel-inner" role="listbox"> 
<div class="item active"> 
    <% @patient.images.each do |image| %> 
    <%= image_tag image.image_file.url %> 
    <% end %> 
</div> 
</div> 

需求是这样的:

<div class="carousel-inner" role="listbox"> 
    <% @patient.images.each_with_index do |image, index| %>  
    <div class="item <%= index == 0 ? 'active' : '' %>"> 
     <%= image_tag image.image_file.url %> 
    <end> 
    <% end %> 
</div> 

让我知道它是否适合你。

+0

Intresting,我不知道'each_with_index'功能的..想你的解决方案,却得到了“希望‘)’;”在'

  • ”class =“<%= index == 0'active':''%>”>
  • 'line – PSCampbell

    +0

    对不起,我错过了?在三元运算符:)中,我更新了响应。 – fanta