我正在尝试创建种子来测试新的数据库结构。但是我正在努力,因为种子是树形的,例如:
如图所示,我想用颜色连接每个人,所以当我将这个信息拉到前端视图时,它会显示类似的内容
我有什么?
在我的文件夹种子中,我创建了一个file.rb,然后我做了一些数组:
company = ["Tecnics"]
departments = ["hr"],["sales"],["IT"],["marketing"]
assignments = ["goverment"],["contracts"],["banks"],["servers"]["social media"], ["telecom"]
country_servers = ["mexico"], ["canada"], ["ohio"], ["New york"]
我是如何创建我的种子的?
#company Parent
company.each_with_index {|company|
com_tmp = Division.create!({
name: company,
division_type: 9
})
department.each { |department_name|
dept_dir_tmp = Division.create!({
name: department_name,
parent_id: com_tmp.id,
division_type: 8
})
assignment.each {|assignment_name|
dept_tmp = Division.create!({
name: assignment_name,
parent_id: dept_dir_tmp.id,
division_type: 7
})
}
}
}
我创建了parent_id,所以我可以得到一个父母,但是当我想与一个特定的父母结交特定的孩子时,它就获得了所有的父母。
如何使绿色(如Sales(部门)可以连接到加拿大(country_server)?并在我的种子文件中使用将绿色的与橙色的连接起来。
感谢帮助!! :D
您可以使用polymorphic associations,如下所示:
class CountryServer < ApplicationRecord
belongs_to :serverable, polymorphic: true
end
class Department < ApplicationRecord
has_one :country_server, as: :serverable
end
class Assignment < ApplicationRecord
has_one :country_server, as: :serverable
end
要创建此关联,您需要迁移:
class CreateCountryServers < ActiveRecord::Migration
def change
create_table :country_servers do |t|
t.references :serverable, polymorphic: true
end
end
end