2012-08-07 94 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