Rails 5中的父种子-将子哈希分配给特定的父哈希

问题描述 投票:-1回答:1

我正在尝试创建种子来测试新的数据库结构。但是我正在努力,因为种子是树形的,例如:

enter image description here

如图所示,我想用颜色连接每个人,所以当我将这个信息拉到前端视图时,它会显示类似的内容

enter image description here

我有什么?

在我的文件夹种子中,我创建了一个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

ruby-on-rails ruby ruby-on-rails-5
1个回答
0
投票

您可以使用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
© www.soinside.com 2019 - 2024. All rights reserved.