0

我有一个应用程序,其中包含三个模型。我有非常相似的潜在客户和客户(但差异很大,以至于他们保证了自己的模型)。然后我有一个名为“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 是否有某种锁定?为什么我不能更改关联?

4

1 回答 1

1

这应该工作

interaction.interactionable = customer
interaction.save
于 2013-04-25T08:12:33.313 回答