我需要帮助,我认为应该是一个ActiveRecord回调。ActiveRecord回调 - 如何根据刚刚保存的记录创建新记录?
我想要实现的是,每次保存某个记录时,ActiveRecord实际上会在同一个表中保存2条记录。
我会远离为什么我想要这个,它应该足以知道每个事务需要2个独立但相似的记录保存在同一个表中。
例子:
0)我有一个表称为“链接”,将店里的人与其他人。它看起来像这样:
+----+-----------+---------------+-------------+
| id | person_id | origin_person | rcvd_person |
+----+-----------+---------------+-------------+
1)Web应用程序的用户将在始发者和接收人(谁是始发或接收的链接)进入。在这一点上 “为person_id” 空白:
+----+-----------+---------------+-------------+
| id | person_id | origin_person | rcvd_person |
+----+-----------+---------------+-------------+
| 1 | | 5 | 10 |
+----+-----------+---------------+-------------+
2)记录保存之前,我需要复制到“为person_id列 “origin_person” 的价值:
+----+-----------+---------------+-------------+
| id | person_id | origin_person | rcvd_person |
+----+-----------+---------------+-------------+
| 1 | 5 | 5 | 10 |
+----+-----------+---------------+-------------+
3)最后,一旦记录已被保存,我需要保存一个重复的记录,但复制到“为person_id”中的“rcvd_person”值:
+----+-----------+---------------+-------------+
| id | person_id | origin_person | rcvd_person |
+----+-----------+---------------+-------------+
| 1 | 5 | 5 | 10 |
+----+-----------+---------------+-------------+
| 2 | 10 | 5 | 10 |
+----+-----------+---------------+-------------+
这正是我想要做的,所以如果你可以帮我一个想到如何实现这一点,将不胜感激。
我宁愿将所有这些都排除在Rails视图之外,因为我不想要隐藏的字段以及什么不在附近。
我试图解决这个问题时遇到的一个问题是它会循环。我写了一些代码(这是行不通的),一旦记录被保存就会创建一个新记录,但每次保存都会触发一个新记录,这是一个新的保存...
谢谢斯洛博丹。我想要这种行为的原因是,为了获得我想要的记录,我需要使用自定义sql查找,这意味着我会打破很多我已经拥有的分页等等。我可能不得不咬紧牙关,让我的Rails以合适的设计工作。但是,谢谢你清理如何做到这一点。 – Oscar 2010-08-04 08:47:24