1

我有 3 个模型(流派、情绪、节奏),每个模型都与另一个模型(轨道)有 has_and_belongs_to_many 关联。用户可以上传包含每个曲目信息的 Excel 文件,我希望能够在我的更新方法中创建相应的记录并一次添加所有关联。

我正在从电子表格中读取每一行,并创建包含与每首曲目关联的流派、情绪和节奏的数组,但我不确定如何正确创建关联。

就像是:

1.upto @worksheet.last_row_index do |index|
  row = @worksheet.row(index)
  genres = row[6].split(", ")
  genres.each do |g|
    Genre.find_or_create_by_name(g) // not sure what to do here exactly
  end
end

Track ID 为 row[0]。

如果每个流派不存在,我需要创建它,并将该轨道与每个流派相关联。如果流派确实存在,那么我只需要创建关联。情绪和节奏也是如此。

感谢您的任何帮助。

4

1 回答 1

0

这似乎做到了。

1.upto @worksheet.last_row_index do |index|
  row = @worksheet.row(index)
  track = Track.find(row[0])
  genres = row[6].split(", ")
  genres.each do |g|
    track.genres << Genre.find_or_create_by_name(g)
  end
end
于 2012-06-19T03:21:51.230 回答