我有一个Rails项目要做。我正在使用roo解析.xls文件并将信息放在关系数据库中。如果ruby不使用外键,我该怎样才能恢复这种关系?假设我得到了Category和Subcategory表,我正在读取.xls文件中的行并将信息写入数据库。类别有许多子类别。但是可能存在现有类别(因此我不需要再添加它)。使用rails console我该怎么办?我正在使用像a = Category.new(name_category: "test")
这样的东西。这应该创建一个类别,但它没有链接到子类别。如何在一个命令中添加和链接它们?如果子类别具有项目,该怎么办?我如何创建涉及3种关系的东西?
答案 0 :(得分:0)
不要在一个命令中执行此操作。您需要先“查找或创建”类别。
category = Category.find_or_create_by_name(name: "test")
Subcategory.create(name: "foo", category: category)
您的模型应如下所示:
class Category < ActiveRecord::Base
has_many :subcategories
end
class Subcategory < ActiveRecord::Base
belongs_to :category
end