Ruby on rails 如何在需要访问Rails中未保存的关联的对象中自动调用方法

Ruby on rails 如何在需要访问Rails中未保存的关联的对象中自动调用方法,ruby-on-rails,callback,associations,Ruby On Rails,Callback,Associations,我有一门课叫做“治疗与这些联系”: class Treatment < ActiveRecord::Base has_many :threat_treatments, :dependent => :destroy has_many :threats, :through => :threat_treatments has_many :subcategory_treatments, :dependent => :destroy has_many :subcat

我有一门课叫做“治疗与这些联系”:

class Treatment < ActiveRecord::Base
  has_many :threat_treatments, :dependent => :destroy
  has_many :threats, :through => :threat_treatments
  has_many :subcategory_treatments, :dependent => :destroy
  has_many :subcategories, :through => :subcategory_treatments      
  has_many :treatments_risks, :dependent => :destroy
  has_many :risks, :through => :treatments_risks
  has_many :risks_from_threats, :through => :threats, :source => :risks
  has_many :risks_from_subcategories, :through => :subcategories, :source => :risks

  def associate_with_existing_risks
    self.risks = self.risks_from_threats & self.risks_from_subcategories
  end      
end
类处理:毁灭
有很多:威胁,:通过=>:威胁
有多个:子类别\u处理,:依赖=>:销毁
有多个:子类别,:至=>:子类别
有很多:治疗风险,:依赖=>:破坏
有很多:风险,:通过=>:治疗\u风险
有很多:风险来自威胁,通过=>:威胁,:来源=>:风险
有多个:风险来自子类别,:至=>:子类别,:来源=>:风险
def将_与_现有_风险相关联
self.risks=来自威胁的self.risks\u和来自子类别的self.risks\u
结束
结束
我需要在创建治疗时自动执行方法associate_with_existing_risks()。如果使用before_save回调,这两个关联仍然未保存且不可访问。如果我使用after_save,因为我需要再次保存治疗,我将创建一个无限循环

我不能使用的逆_,因为关联是通过关联进行的


在创建治疗时,我如何以及何时可以执行将\u与\u现有\u风险关联的方法来更新风险关联?

这可以通过在\u初始化之后使用
回调来解决吗?是的,我在3.2.16中检查了在\u初始化之后是否可以访问新关联。谢谢