2011-10-25 57 views
3

我在rails 3網站上使用meta_search gem,我發現一些性能問題,由meta_search生成的select *查詢獲取數據庫模式中的BLOB字段。我不願意遷移底層的模式來解決這個問題。有沒有一種方法可以包含/排除由meta_search生成的搜索查詢中的某些字段?避免在meta_search中選擇*查詢

回答

0

用於定義在Rails Active Record中的查詢中返回哪些字段的機制是.select(...),默認爲*。檢查this SO answer以獲得一種定義默認範圍的方法,該範圍包括除一個字段以外的所有內容。

但是,有關此問題的警告是,當您要寫入表時,您需要覆蓋默認範圍 - 一旦使用.select,字段爲只讀。

我用的繼任者meta_search叫ransack,並賦予它的作者厄尼·米勒是多麼輝煌,機會是有在辦法做到這一點:-)

斑點似乎是個好主意,當我第一次內置開始使用它們......但是,呃,不是那麼多。