2012-08-07 92 views
1

我在嵌套循環中遇到了一些麻煩。有誰知道這樣做的更好的辦法:Rails 3.1/Ruby - 嵌套循環?

@product.tracks.each do |t| 
    t.artists_tracks.each do |at| 
     at.role = at.artist.role 
     at.position = at.artist.position 
     at.save 
    end 
end 

我發現了一個未定義的方法作用=錯誤

在此先感謝

+0

循環看起來不錯,我肯定的事。每款車型都有哪些屬性? – Dogbert 2012-08-07 14:00:38

回答

0

一些評論:

  • 只要你有一個has_many :artist_tracks, :through => :artists,你應該可以寫@product.artist_tracks

  • at.role = at.artist.role。您打破了沒有重複數據的基本SQL規則,請讓artist發揮作用。

1
@product.tracks.each do |track| 
    track.artists_tracks.each do |at| 
     at.role = track.artist.role 
     at.position = track.artist.position 
     at.save 
    end 
end 

但是,是的..你需要檢查你的模型ATTRS