给定一个Rails 5 has_and_belongs_to_many,如何创建连接记录?

Given a Rails 5 has_and_belongs_to_many, how to create a join record?

我有以下架构:

class Industry << ApplicationRecord
  has_and_belongs_to_many :departments
end

# Relationship table: departments_industries

class Department << ApplicationRecord
  has_and_belongs_to_many :industries
  has_and_belongs_to_many :job_titles
end

# Relationship table: departments_job_titles

class JobTitle << ApplicationRecord
  has_and_belongs_to_many :departments
end

当我要创建关系记录时:

department.job_titles.find_or_create_by(title: title)

仅当上面的查询创建记录时,以上内容才会在 departments_job_titles 中创建记录...如果 JobTitle 已经存在,Rails 不会在 [= 中创建关系记录15=].

如何更新:

department.job_titles.find_or_create_by(title: title)

要始终在找到或创建 JobTitle 记录时在 departments_job_titles 中创建关系记录?

试试这个:

department.job_titles << JobTitle.find_or_create_by(title: title)