我正在尝试使用其嵌套属性实现导入,紧随其后: Rails Cast CSV Import
要导入的字符串的示例如下:
id subject_list_name subject_codes
1 CE2A [CPE205, CPE206, CPE301, CPE302, CPE303]
使用以下代码,我正在尝试导入
- 主题列表模型的数据(id 和 subject_list_name)
- 与来自主题模型的数据的多对一关系-主题列表有许多主题(主题代码)
现在,我能够导入主题列表的数据,但在导入关系数据时遇到了问题。(即我可以更改主题列表名称,但不能更改主题代码)
以下代码段是我所做的。
def self.import(file)
CSV.foreach(file.path, headers: true) do |row|
#each row
subject_list = find_by_id(row["id"]) || new
subject_list.attributes = row.to_hash.slice(*accessible_attributes)
subject_list.save!
subject_codes = row["subject_codes"]
subject_codes = subject_codes.delete('[]')
subject_codes = subject_codes.split(', ')
#each subject code
subject_codes.each do |code|
subject_list.subjects.where(subject_code:code)
.first_or_create!(subject_code:code)
end
end
end
任何关于我如何实现两者之间关系的建议将不胜感激。