将父级数组与子级Array Seeds Ruby on Rails 5匹配

我正在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 

将父级数组与子级Array Seeds Ruby on Rails 5匹配

让我们说我想将加拿大服务器与销售部门配对。创建种子时,如何使用数组来做到这一点?或如何在我的种子文件中将Department与其适当的分配和服务器国家/地区进行匹配?

我需要访问一个阵列吗?

我将不胜感激!

注意:我添加了填充种子文件

yang01104891 回答:将父级数组与子级Array Seeds Ruby on Rails 5匹配

取决于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',assignments: ['Banks'],server: 'Canada'},{name: 'IT',parent_type: 'Company' assignments: ['Severs']},{name: 'Marketing',assignments: ['Social Media']}
]

assignments = [
  {name: 'Government',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',server: 'Mexico'},{name: 'Telecom' parent_name: 'Tecnics',parent_type: 'Company'}
]

servers = [
  {name: 'Mexico',parent_name: 'Social Media',parent_type: 'assignment'},{name: 'Canada',{name: 'Ohio',parent_name: 'Servers',{name: 'New York',parent_name: 'Contracts',parent_type: 'assignment'}
]
本文链接:https://www.f2er.com/3164290.html

大家都在问