1

我在使用嵌套循环时遇到了一些问题。有谁知道这样做的更好方法:

@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

我得到一个未定义的方法角色 =错误

提前致谢

4

2 回答 2

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

于 2012-08-07T14:04:16.540 回答
0

一些评论:

  • 如果@product.artist_tracks你有一个has_many :artist_tracks, :through => :artists.

  • at.role = at.artist.role. 您正在打破不重复数据的基本 SQL 规则,让其artist发挥作用。

于 2012-08-07T14:01:16.440 回答