12

我有这个each循环:(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

因为是我用来生成图像链接的@deals3 个表(模型)的组合查询。polymorphic_path

- @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

但这会产生region_city_attachment_path不正确的结果。第一个每个循环a变量存储正确的值,但我怎样才能在第二个循环中reach的第一个a变量each

4

3 回答 3

19

只需给它另一个名字。

- @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
于 2012-07-29T22:07:06.247 回答
14

使用变量名时你应该更清楚,做类似的事情

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

当您可以编写更具可读性的代码时,使用诸如“a”/“b”/“x”之类的名称是一种非常糟糕的做法

于 2012-07-30T02:38:53.110 回答
1

只是不要为他们两个使用相同的名字,一切都会好起来的。

于 2012-07-29T22:06:57.823 回答