2012-07-29 19 views
8

tengo unas pocas cosas each bucle: (haml)Cada ciclo Haml?

- @deals.each do |a| 
    .slide 
     %a{:href => "#"} 
     - a.attachments.each do |a| 
      = image_tag(a.file.url, :height =>"325px", :width =>"650px") 
      .caption{:style => "bottom:0"} 
       = a.description 

Debido @deals se combina consulta de 3 mesas (modelos) que utilizo polymorphic_path para generar los enlaces de las imágenes.

- @deals.each do |a| 
    .slide 
     %a{:href => "#"} 
     - a.attachments.each do |a| 
      = image_tag(a.file.url, :height =>"325px", :width =>"650px"), polymorphic_path(@region, @city, a) 
      .caption{:style => "bottom:0"} 
       = a.description 

Pero esto genera region_city_attachment_path que no es correcto. La primera variable de cada bucle a almacena el valor correcto, pero ¿cómo puedo reach la primera variable a en el segundo bucle each?

Respuesta

13

Solo le doy otro nombre.

- @deals.each do |a| 
    .slide 
     %a{:href => "#"} 
     - a.attachments.each do |b| 
      = image_tag(a.file.url, :height =>"325px", :width =>"650px"), polymorphic_path(@region, @city, b) 
      .caption{:style => "bottom:0"} 
       = a.description 
1

Simplemente no use el mismo nombre para ambos, y todo saldrá bien.

13

que debería ser más clara cuando se utilizan los nombres de variables, hacer algo como

- @deals.each do |deal| 
    .slide 
    %a{:href => "#"} 
     - deal.attachments.each do |attachment| 
     .. 

que es una muy mala práctica utilizar nombres como "A" "B"// "x" cuando puede escribir un código mucho más legible