[英]Self ID in model, before record is created - rails 3
我的Item模型中有一些代碼(非常寬松),例如:
def author_id=(xyz)
book = Book.find_by_author_id(xyz)
book.author_id = self.id
end
創建新記錄時似乎沒有設置self.id ...有什么想法嗎?
id設置為僅在將其保存到數據庫后才進行記錄。 所以你可以在這里添加一個簡單的回調
after_create (or after_save - whatever you need) do |record|
book = Book.find_by_author_id(xyz)
book.update_attributes :author_id => record.id
end
如果self
是new_record?
(不在數據庫中保留),您將無法分配這樣的ID,因為還沒有ID。 但是,應該可以將book.author
設置為self
。
如果不是您的情況,則應考慮稍微說明一下您的問題。
創建新記錄時,尚未設置ID,因為該對象尚未在數據庫中。 您可以使用實例方法new_record?()
對其進行測試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.