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