【问题标题】:Match parent array with child Array Seeds Ruby on Rails 5将父数组与子数组种子匹配 Ruby on Rails 5
【发布时间】:2019-11-04 19:11:01
【问题描述】:

我在我的 ruby​​ on 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 

假设我想将加拿大服务器与销售部门匹配。当我创建种子时,如何使用数组来解决这个问题?或者我如何在我的种子文件中将部门与其适当的分配和服务器国家/地区相匹配?

我需要访问数组吗?

我会感谢您的帮助!

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

【问题讨论】:

  • 对于“匹配”,您需要另一个数组来保持匹配对
  • 嗯嗯,好的。但是在创建种子时我将如何做呢?
  • “种子”是什么意思?
  • 当我执行我的 create 功能时。我希望当我键入我的 rails 控制台时,我想查看它们各自的子数组和父数组。
  • 那么,您正在处理您的seeds.rb 文件并试图弄清楚如何根据数组创建和关联记录的逻辑?如果是这种情况,我将有助于查看您当前的 seed.rb 文件以及您的架构。

标签: ruby-on-rails ruby ruby-on-rails-5


【解决方案1】:

根据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'}
]

【讨论】:

    猜你喜欢
    • 2016-11-21
    • 2015-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多