2011-08-08 55 views
1

這是一個奇怪的事情,我一直在遇到,我想知道如果人們可以給我幾個關於在哪裏尋找問題的指針。Rails發現沒有返回數據庫中存在的記錄

我正在做的是在模型上運行一個id查找。當我在一組記錄上運行它時,它們會按照預期返回該記錄。但還有另外100條記錄,我可以在數據庫(mysql)中看到,但運行find命令會返回ActiveRecord :: RecordNotFound異常。

如果我直接在數據庫中創建另一條記錄,我也無法拉出該記錄。但是,如果我在rails控制檯中執行新命令,那麼該記錄是可檢索的。如果我執行find_by_sql命令,則記錄是可檢索的。

我試過優化表,但除此之外,我有點難以理解會導致這種情況。我使用Ruby 1.8.7和本地機器上的MySQL gem運行Rails 2.3.12。任何想法可能的原因將不勝感激。謝謝!

編輯感謝指針 - 附加一個記錄器到我的控制檯實例,暴露了問題 - 一個被遺忘的default_scope,它限制了返回的內容。

+0

檢查您的控制檯日誌和生成的SQL語句。 –

+0

感謝您的指針 - 發現錯誤。 – timting

回答

0

模型中必須有一些東西來約束SQL查詢的範圍。

檢查Ruby代碼生成的SQL的日誌,你會發現有什麼問題有用的提示。

相關問題