在我们的RoR应用程序中,我们有两个核心模型和一个连接表:
class Workflow < ActiveRecord::Base
has_many :workflow_datafiles
has_many :datafiles, :through => :workflow_datafiles
class Datafile < ActiveRecord::Base
has_many :workflow_datafiles
has_many :workflows, :through => :workflow_datafiles
class WorkflowDatafile < ActiveRecord::Base
belongs_to :datafile
belongs_to :workflow
连接表有自己的模型代码,并包含一个实际数据元素,用于描述给定工作流和数据文件之间关系的性质。我编写了从XML文件导入数据的代码,在关联导入的文件和工作流之后,我需要将一些数据放入连接行。问题是,即使未保存的工作流对象具有数据文件数组,而未保存的数据文件对象具有工作流数组,也没有workflow_datafile数组。我认为它们会在我保存后出现(我应该验证这一点,我猜)。
因此,当我处理XML文件,实例化工作流和数据文件对象,并将它们添加到彼此的集合中时,我没有很好的方法来访问它们的连接对象。
我看到两个选项:
我倾向于选择2,但我真的希望有人有更好的选择,或者至少对整体情况有一些了解。