2011-12-01 43 views
0

使用rails和活動記錄,是否可以在創建時將id設置爲自引用?使用活動記錄在創建時設置自引用的ID

我遇到了一個人是他們自己的主管的問題。我想在該人的create語句中設置supervisor_id字段。

class Person < ActiveRecord::Base 
    belongs_to :supervisor, :class_name => "Person", :foreign_key => "supervisor_id" 
    ... 

Person.create(:name => "John Smith", :supervisor => ?self?) 

從mysql的角度來看,我沒有看到在單個查詢中這是如何實現的。軌道是否有內置的方式來做到這一點?我目前的計劃是一個國旗和一個後創建。

回答

1

由於在創建對象之後才分配id,因此在rails中執行此操作的最簡單方法是使用after_create回調函數。

如果你想得到真正的進步,你也許可以做一個mysql觸發器......但是這似乎比它的價值更麻煩。

相關問題