2017-07-19 39 views
0

我試圖確定爲什麼我不能夠獲得一個模型的ID被保存到數據庫後:activerecord-sqlserver-adapter .save!不返回一個ID

request.attributes = attributes 
request.touch 
request.save! 
puts request.inspect 

控制檯打印:

#<Request id: nil, ...> 

使用:

activerecord (4.2.9) 
activerecord-sqlserver-adapter (4.2.18) 
activesupport (4.2.9) 
rails (4.2.9) 

回答

0

你可以嘗試重新加載模型,並再次檢查它:

request.reload 
puts request.last.inspect 

雖然根據您的代碼片段模型必須堅持 - save!否則會拋出錯誤。

P.S.我寧願對你的問題發表評論,但沒有足夠的聲望。

+0

看來'reload'期待請求有一個ID,它似乎並不:在「find_with_ids」 ':沒有ID找不到請求(ActiveRecord的:: RecordNotFound)' – blgrnboy

+0

那意味着模型不被持久化。也許出於某種奇怪的原因,在rails控制檯中禁用日誌記錄,並且只是看不到錯誤,請在保存請求之前嘗試明確地將其打開:「ActiveRecord :: Base.logger.level = Logger :: INFO」。儘管必須在任何情況下顯示驗證錯誤。 調試的另一個想法是:檢查記錄是否真的被插入到數據庫中(比如說,在'rails dbconsole'或'psql'中,如果你使用PostgreSQL的話)。只是爲了確保ActiveRecord方面存在這個問題。 – tap349