簡體   English   中英

創建記錄之前,模型中的自我ID-rails 3

[英]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

如果selfnew_record? (不在數據庫中保留),您將無法分配這樣的ID,因為還沒有ID。 但是,應該可以將book.author設置為self

如果不是您的情況,則應考慮稍微說明一下您的問題。

創建新記錄時,尚未設置ID,因為該對象尚未在數據庫中。 您可以使用實例方法new_record?()對其進行測試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM