Rails中的种子数据关系如何?

时间:2016-04-19 14:03:06

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4

我希望每个子照片的每个类别或类别都放置一个以上的子类别,也许是与种子相关的第三类别。

例如: ()=有

category >>>> item 1 item 2 item 3 
subcategory >>>> item 2(subitem 1 subitem 2 subitem 3)
thirdcategory >>>> subitem 3(thirditem 1 thirditem 2)

有人知道如何通过种子来实现这个目标吗?

关系是:

类别has_many子类别

子类别has_many thirdcategories

2 个答案:

答案 0 :(得分:2)

如果你有属于Category的模型Subcategory,你可以在种子文件中做这样的事情:

item1 = Category.create
subitem1 = Subcategory.create(category: item1)

如果你能准确解释你的模型和它们之间的关系,那将是有用的。

答案 1 :(得分:0)

我认为我们只需要为您的子类别问题命名为Category的模型:

添加字段" parent_id:整数"到你的分类模型

class Category < ActiveRecord::Base
  belongs_to  :parent        , class_name: "Category", foreign_key: "parent_id"
  has_many    :sub_categories, class_name: "Category", foreign_key: "parent_id"
end

种子文件:

item_1 = Category.create()
item_2 = Category.create()
item_3 = Category.create()

subitem_1 = item_2.sub_categories.create()
subitem_2 = item_2.sub_categories.create()
subitem_3 = item_2.sub_categories.create()

thirditem_1 = item_3.sub_categories.create()
thirditem_2 = item_3.sub_categories.create()

希望这个帮助