2010-10-01 71 views
0
@user_post = Post.find(:all,:conditions => ["content LIKE ?", "%#{params[:query]}%"]) 

即使數據庫中存在記錄,該特定語句返回nil。問題在哪裏?使用find在導軌中搜索

請幫我一把。

回答

0

您是否驗證過參數傳遞正確?當查詢沒有返回預期的結果時,它幾乎總是因爲你認爲你正在執行的查詢不是你正在執行的查詢。看看你的日誌文件來驗證查詢是否正確。

+0

是的...我檢查了發展中的日誌文件...這是具體的查詢,因爲我預期... – vinkris 2010-10-01 02:54:09

+0

Processing SearchController#live_search(for 127.0.0.1 at 2010-09-30 22:52:15 )[POST] 參數:{「authenticity_token」=>「Uf0lChFYmx + k2yKlqTpU9umhAz3hVgHdO2CPmJU/JQE =」,「query」=>「hi」} [4; 36; 1mUser Load(1.0ms)[0m [0; 1mSELECT * FROM「users」WHERE(「users」。「id」= 3)LIMIT 1 [0m [4; 35; 1mPost Load(1.0ms)[0m [0mSELECT * FROM「posts」WHERE(content LIKE'%hi%%' )[0m 渲染搜索/ live_search 完成於76ms(查看:19,DB:2)| 200 OK [http:// localhost/search/live_search] – vinkris 2010-10-01 02:54:44

+0

在這種情況下,只有其他幾種可能性。 1)你認爲在那裏的記錄確實沒有。 2)它不是真的返回零。你如何驗證它是否返回零?它在視圖中給你帶來了問題嗎? – sosborn 2010-10-01 04:16:58

0

您是否嘗試過在MySQL控制檯中運行結果查詢?如果你確實有結果,然後繼續調試,錯誤是在控制器動作和渲染視圖之間的某處。也許你正在加載結果在before_filter這不是你的行動執行?