我有一个应用程序,我有三个模型。我有非常相似的潜在客户和客户(但他们保证自己的模型不同)。然后我有一个名为“Interactions”的多态模型,它有一个interactionable_id和一个interactionable_type(当然,它可以是'customer'或'lead')。
我最近尝试构建一种方法,将交互从潜在客户迁移到客户(当潜在客户升级为客户时)。
我想保持我的代码精益,为了保持我的方法简单,我决定简单地更新交互的属性,以便interactionable_id和interactionable_type分别改变为客户的id和“Customer”。
我尝试了很多这样做的方法,我唯一可以更新的是interactionable_type。无论我尝试什么,interactionable_id都不会改变。我尝试输入一个静态数字(而不是customer.id)。我尝试了update_attributes,我尝试单独更新属性然后保存它。另外,我确实在attr_accessible列表中有:interactionable_id。
我得到了这个工作,因为我决定稍微改变一下这个问题,但我找不到任何答案,确切地知道为什么会发生这种情况。
我只是想知道是否有人知道为什么会这样。是否存在某种对多态关联ID的锁定?为什么我不能改变关联?
答案 0 :(得分:1)
这应该有效
interaction.interactionable = customer
interaction.save