我需要幫助,我認爲應該是一個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