0
就像標題所說,我試圖獲取剛剛創建的記錄的ID,我試圖在控制檯中獲取它,但ID爲零。Rails 3如何獲取after_create中的當前記錄ID
這是我在after_create
<Unit id: nil, uuid: "9f11be13-8d07-4471-a3bb-f87943966bbd", organization_id: 33, property_id: 430, door_number: "3", created_at: "2014-12-05 13:27:57", updated_at: "2014-12-05 13:27:57", deleted_at: nil, size: "5 1/2", door_number_int: 3, leases_count: 0, tasks_count: 0, notes: nil, state_id: 68, state_tasks_count: 2, current_lease_id: nil, next_lease_id: nil, state_tasks_serie: 1, state_tasks_serie_count: 2, price_asked: #<BigDecimal:7fc79162cb80,'0.123E3',9(18)>, availability_date: nil, comments_count: 0>
開始了在控制檯自我的打印是否有一種方式來獲得訪問記錄ID?
這是我試過到目前爲止
after_create
self.save
end
before_save
if self.id.present?
# do stuff
end
end
它是不是很漂亮,但它的工作
要回答@MarekLipka:因爲僅創建一次記錄它不會導致無限循環。
我還試圖用:
after_create
reload
# do stuff if self.id
end
,但似乎並沒有工作。
像@PauloFidalgo說,除了after_save方法,我無法獲得id。雖然我很奇怪我可以在第二個before_save中獲得它(由after_create中的保存觸發)。
我的問題在於我需要修改實際記錄中的某些值。這就是爲什麼我在before_save中做到這一點。 但爲了將另一個元素的新記錄關聯起來,我想在after_create中獲取ID並執行我的操作。 如果我將這個記錄保存在after_save中,會導致無限循環。 如果after_create沒有保存記錄,我怎麼得到我的id在我之前保存由after_create調用? – Incognito 2014-12-05 15:50:10
@Incognito所以你想在創建或編輯記錄時更改關聯? – 2014-12-05 15:56:48
事實上,我想要的是複製與單元關聯的某個記錄,重點是我創建了一個模板單元,當用戶創建它時,它複製默認關聯,這就是爲什麼我正在嘗試它。但做self.tasks << Task.new(taks_to_copy.attribute)似乎並沒有創建關聯時主記錄被保存 – Incognito 2014-12-05 16:08:28