My Rails應用程序使用Postgres支持的ActiveRecord。我通過psql進入數據庫,並從其中一個表中刪除了一行。事後看來,這是一個糟糕的決定,因爲它導致部分應用崩潰,試圖引用該對象。手動刪除postgresql中的一行,現在ActiveRecord正在打破
事情是這樣:
undefined method `first_name' for nil:NilClass
或者
Couldn't find Person with id=137
所以現在我有兩個問題。
我該如何解決這個問題?
操縱數據是通過
rails console production
手動更新它的最好方法嗎?或者我是否應該避免這種情況?的代碼
例
Reward.all.order("created_at DESC").where(warning: false, created_at: @yearrange).page(params[:page])
凡獎賞包含對人物ID
您是否從'id = 137'的人中刪除了? –
是的,ID爲137的人很可能是我刪除的對象。 – ranonk
用手把它放回去或追蹤引用它的所有內容並修復那些懸掛的引用。然後看看外國人的寶石,並開始在數據庫中使用真正的FKs,以便數據庫可以保護您免受這種數據損壞。 –