1

我有一个 Rails 项目要做。我正在使用 roo 解析 .xls 文件并将信息放入关系数据库中。如果 ruby​​ 不使用外键,我怎样才能恢复这种关系?假设我有 Category 和 Subcategory 表,我正在读取 .xls 文件中的行并将信息写入数据库。一个类别有许多子类别。但是可能有一个现有的类别(所以我不需要再次添加它)。使用 rails 控制台我该怎么做?我正在使用类似的东西a = Category.new(name_category: "test")。这应该创建一个类别,但它没有链接到子类别。如何在一个命令中添加并将它们链接在一起?如果一个子类别有一个项目怎么办。我将如何创建涉及 3 个关系的东西?

4

1 回答 1

1

不要在一个命令中做到这一点。您需要先“查找或创建”类别。

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
于 2013-04-29T19:30:16.773 回答