2013-08-04 109 views
0

以我在http://railscasts.com/episodes/370-ransack的示例爲基礎,我已能夠通過搜索表單在我的廉價股票基金網站(http://www.bargainstockfunds.com)上工作。通過一些修改(產品 - >基金,產品 - >基金,產品 - >基金),我可以得到它的工作。搜索表單(Ransack gem)

示例應用程序默認顯示數據庫表中的所有記錄。對於我的特定應用程序,這不是一個可行的選擇,因爲它涵蓋了超過10,000個股票基金,並且將它們全部加載到頁面上花費太多時間。

如果條目數小於給定數,我該如何才能使搜索表單顯示條目? (我正在考慮類似200的東西。)如果資金數量太多,我想提供一條信息,如「太多的資金 - 請縮小搜索範圍」。如果資金數量爲0,我想提供一條信息,如「沒有可用的資金 - 請擴大您的搜索範圍」。

回答

2

頁面上的200個條目仍然很安靜,我希望您將使用will_paginate gem來控制它,實現非常簡單。

https://github.com/mislav/will_paginate/wiki

如果您使用的洗劫,那麼你可以這樣調用的方法。

def method 
    if @search.result.count >= 200 
    redirect_to root_path, notice: " Please narrow your search" 
    elsif @search.result.count == 0 
    redirect_to root_path, notice: "0 search results returned" 
    else 
    true 
end 

如果你想阻止加載了太多,那麼你可以隨時調用.limit(x)的方法對@ search.result

希望有所幫助。

0

我能夠通過使用Kaminari寶石來對結果進行分頁,從而使我的搜索表單快速運行。我嘗試了will_paginate,但我無法讓它爲我工作。我想我可能會堅持使用will_paginate gem,但Railscast最近涵蓋了Kaminari,而不是覆蓋了will_paginate。鑑於Ruby on Rails的挑剔性以及舊程序的細節如何過時,我決定使用Kaminari。

相關問題