我是rails的新手,并且无法弄清楚如何将数据插入数据库。
我正在读取CSV并希望将这些值加载到数据库中。我的模型看起来像这样。
class Book < ActiveRecord::Base
belongs_to :subject
end
class Subject < ActiveRecord::Base
has_many :books
end
...我的数据是这样的:
Science, Book A
Science, Book B
History, Book C
Math, Book D
我正在用分隔符拆分CSV行。
如何插入数据的方式如果主题存在,子书记录将被添加到现有主题,但如果主题不存在,也会创建新主题?
这是解决此问题的最佳方式,还是有人建议采用更好的方法。
答案 0 :(得分:2)
无需重新发明轮子。在csv文件中添加标题行,将其保存为subjects.csv,然后使用内置灯具库加载数据:http://api.rubyonrails.org/classes/Fixtures.html
答案 1 :(得分:0)
感谢@idlefingers:
subject = Subject.find_or_create_by_name("Science")
subject.books.create(:name => "Book A")