【发布时间】:2010-08-04 07:56:59
【问题描述】:
我需要关于我认为应该是 ActiveRecord 回调的帮助。
我想要实现的是,每次保存特定记录时,ActiveRecord 实际上会在同一个表中保存 2 条记录。
我会远离我为什么要这样做,知道每个事务需要保存在同一个表中的 2 个独立但相似的记录应该已经足够了。
例子:
0) 我有一个名为“链接”的表,它将存储与其他人链接的人。它看起来像这样:
+----+-----------+---------------+-------------+
| id | person_id | origin_person | rcvd_person |
+----+-----------+---------------+-------------+
1) 网络应用用户将输入发起人和接收人(发起或接收链接的人)。此时“person_id”为空:
+----+-----------+---------------+-------------+
| id | person_id | origin_person | rcvd_person |
+----+-----------+---------------+-------------+
| 1 | | 5 | 10 |
+----+-----------+---------------+-------------+
2)在记录保存之前,我需要将“origin_person”的值复制到“person_id”列:
+----+-----------+---------------+-------------+
| id | person_id | origin_person | rcvd_person |
+----+-----------+---------------+-------------+
| 1 | 5 | 5 | 10 |
+----+-----------+---------------+-------------+
3) 最后,保存记录后,我需要保存重复记录,但将“rcvd_person”值复制到“person_id”:
+----+-----------+---------------+-------------+
| id | person_id | origin_person | rcvd_person |
+----+-----------+---------------+-------------+
| 1 | 5 | 5 | 10 |
+----+-----------+---------------+-------------+
| 2 | 10 | 5 | 10 |
+----+-----------+---------------+-------------+
这正是我想要做的,所以如果你能帮助我了解如何实现这一点,我们将不胜感激。
我宁愿将所有这些都排除在 Rails 视图之外,因为我不想要隐藏的字段和不闲逛的东西。
我在尝试解决这个问题时遇到的一个问题是它会循环。我写了一些代码(不起作用),一旦保存记录就会创建一个新记录,但是每次保存都会触发一个新记录,这是一个新的保存......
【问题讨论】:
标签: ruby-on-rails activerecord callback