2013-02-15 69 views
0

我希望每个循环的第一个元素是“活动”,并用一个活动的css类包装它。我试过这个,但是现在每个项目都是活跃的。我做错了什么?each_with_index工作不正确

#myCarousel.carousel.slide 
    .carousel-inner 
    - @cities.each do |city| 
     - city.activities.find_all_by_homepage_city(true).each do |b| 
     - b.attachments.each_with_index do |a, index| 
      - if index=0 
      .active.item 
       = link_to(image_tag(a.file.url, :height =>"325px", :width =>"650px")) 
       .carousel-caption 
       %h4 yep 1 
      - else 
      .item 
       = link_to(image_tag(a.file.url, :height =>"325px", :width =>"650px")) 
       .carousel-caption 
       %h4 yep 2 

Thanks..remco

+0

嗨Remco,我认为这是如果条件。你可以尝试使用'if index == 0'? – Kaeros 2013-02-15 11:39:32

+0

kaeros ..感谢我解决了它......但stil每个项目是“活跃” – Remco 2013-02-15 11:44:30

+0

考虑重构,如果唯一的变化是一个类名称,并考虑部分。 – 2013-02-15 13:00:46

回答

4

你有一个错字,应该是if index == 0if index = 0

无论如何,如果我想要做你正在做的,我会做以下

#myCarousel.carousel.slide 
    .carousel-inner 
    - @cities.each do |city| 
     - city.activities.find_all_by_homepage_city(true).each do |b| 
     - b.attachments.each_with_index do |a, index| 
      %div{ :class => "#{index == 0? 'active item' : 'item'}" } 
      = link_to(image_tag(a.file.url, :height =>"325px", :width =>"650px")) 
      .carousel-caption 
       %h4 
       = index == 0 ? 'yep 1' : 'yep 2' 
什么
+0

khaled ..谢谢我修好了......但stil每个项目都是“活跃” – Remco 2013-02-15 11:44:46

+0

尝试打印索引像'= index'并查看打印值 – Khaled 2013-02-15 11:52:31

+0

我认为@Khaled并不意味着更多'.active。项目'在'%div {...}'下,这是一个错字。我想如果你用'.active.item'删除那行,那么他的例子应该可以工作。 – NIA 2013-02-15 12:04:41