0

我有一个用户创建约会的应用程序,每个约会都有一组通过 Appointment_Skills 表附加到他们的技能。在创建后,我想为每个约会附加大约 50 种左右的技能。因为约会表单太大并且要跟踪的事情太多,我让用户使用最小表单创建约会,然后重定向到他们可以访问整个约会的编辑页面。我正在使用嵌套属性来更新编辑表单中的 Appointment 和 Appointment_Skills。

Appointment
  has_many :skills, through: :appointment_skills 
  has_many :appointment_skills
  accepts_nested_attributes_for :appointment_skills
end

AppointmentSkill
  belongs_to :skill
  belongs_to :appointment     
end

Skill

end

如果我继续创建一些 AppointmentSkills,我可以使用我的编辑表单来更新它们的属性,但我不确定如何在创建父级后自动创建它们。

我考虑过首先计算所有技能和 ID,然后使用 after_create 回调创建所有具有技能 ID 和约会 ID(刚刚创建的约会)的 AppointmentSkills。

这可能吗?这是一种奇怪的做法吗?

4

1 回答 1

0

结果做...

    after_create :assign_skills 

    def assign_skills
       skills = Skill.all
       skills.each do |skill|
       AppointmentSkill.create(:appointment_id => self.id, :skill_id => skill.id, :position => skill.priority)
    end
end
于 2018-01-20T01:36:40.710 回答