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変数は正しい値を格納しますが、どうすれば2 番目のループでreach最初の変数を保存できますか?aeach

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 に答える