1

我正在尝试使用其嵌套属性实现导入,紧随其后: Rails Cast CSV Import

要导入的字符串的示例如下:

id subject_list_name subject_codes

1   CE2A    [CPE205, CPE206, CPE301, CPE302, CPE303]

使用以下代码,我正在尝试导入

  1. 主题列表模型的数据(id 和 subject_list_name)
  2. 与来自主题模型的数据的多对一关系-主题列表有许多主题(主题代码)

现在,我能够导入主题列表的数据,但在导入关系数据时遇到了问题。(即我可以更改主题列表名称,但不能更改主题代码)

以下代码段是我所做的。

  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

任何关于我如何实现两者之间关系的建议将不胜感激。

4

0 回答 0