我有3个模型(Genre,Mood,Tempo),每个模型与另一个模型(Track)具有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]。
我需要创建每个类型(如果它不存在),并将该轨道与每个类型相关联。如果类型确实存在,那么我只需要创建关联。情绪和节奏相同。
感谢您的帮助。
答案 0 :(得分: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