我在Rails应用程序的红宝石上创建种子测试,并且得到以下数组:
Seed.rb文件
company = ["Tecnics"]
departments = ["hr"],["sales"],["IT"],["marketing"]
assignments = ["goverment"],["contracts"],["banks"],["servers"]["social media"], ["telecom"]
country_servers = ["mexico"], ["canada"], ["ohio"], ["New york"]
company = Division.create!({
name: company[0]
})
#departments
departments.each { |dept_name, idx|
dept_names = Division.create!({
name: dept,
parent_id: company.id
})
}
#assignments
assignments.each {|assign_name, idx|
@assign_tmp = Division.create!({
name: assign_name,
parent_id: dept_names.id
})
}
#country_servers
country_servers.each {|server_name, idx|
@server_tmp = Division.create!({
name: server_name,
parent_id: assign_tmp.id
})
}
File.sort_tree
假设我想将加拿大服务器与销售部门配对。创建种子时,如何使用数组来做到这一点?或如何在我的种子文件中将Department与其适当的分配和服务器国家/地区进行匹配?
我需要访问阵列吗?
我将感谢您的帮助!
注意:我添加了填充种子文件
取决于Division
模型的外观,您应该能够通过以哈希格式指定关系来生成所需的所有对象。类似于:
company = {
name: 'Tecnics',
departments: ['HR', 'Sales', 'IT', 'Marketing'],
assignments: ['Government', 'Telecom']
}
departments = [
{name: 'HR', parent_name: 'Tecnics', parent_type: 'Company', assignments: ['Contracts']},
{name: 'Sales', parent_name: 'Tecnics', parent_type: 'Company', assignments: ['Banks'], server: 'Canada'},
{name: 'IT', parent_name: 'Tecnics', parent_type: 'Company' assignments: ['Severs']},
{name: 'Marketing', parent_name: 'Tecnics', parent_type: 'Company', assignments: ['Social Media']}
]
assignments = [
{name: 'Government', parent_name: 'Tecnics', parent_type: 'Company'},
{name: 'Contracts', parent_name: 'HR', parent_type: 'department' server: 'New York'},
{name: 'Banks', parent_name: 'Sales', parent_type: 'department'},
{name: 'Servers', parent_name: 'IT', parent_type: 'department', server: 'Ohio'},
{name: 'Social Media', parent_name: 'Marketing', parent_type: 'department', server: 'Mexico'},
{name: 'Telecom' parent_name: 'Tecnics', parent_type: 'Company'}
]
servers = [
{name: 'Mexico', parent_name: 'Social Media', parent_type: 'assignment'},
{name: 'Canada', parent_name: 'Sales', parent_type: 'department'},
{name: 'Ohio', parent_name: 'Servers', parent_type: 'assignment'},
{name: 'New York', parent_name: 'Contracts', parent_type: 'assignment'}
]