从json创建活动记录关联

时间:2017-02-06 17:18:07

标签: ruby-on-rails arrays ruby activerecord

我目前在我的模型中有以下关联

class User < ActiveRecord::Base
  has_many :departments
end

class Department < ActiveRecord::Base
  belongs_to :user
end

我的数据库中已有一些用户,而users表中的每个用户都有一个group_code列。

而不是先分配用户,

@user = User.where(company_code: "11111").first
@user.departments.create([{"name":"General","company_code":"11111"},{"name":"Sales","company_code":"11111"}])

我想知道是否可以从下面的数组创建Departments,在创建记录时通过company_code获取用户。

[{
    "name": "General",
    "company_code": "11111"
},
{
    "name": "Sales",
    "company_code": "11111"
},
{
    "name": "General",
    "company_code": "22222"
},
{
    "name": "Sales",
    "company_code": "22222"
}]

1 个答案:

答案 0 :(得分:1)

假设您的数组是值

values.each do |value|
  User.where(company_code: value["company_code"]).first.departments.create(value)
end