簡體   English   中英

搜索表單(Ransack gem)

[英]Search form (Ransack gem)

我已經能夠通過http://railscasts.com/episodes/370-ransack上的示例獲得一個搜索表單,以便在我的Bargain Stock Funds網站( http://www.bargainstockfunds.com )上工作。 通過一些修改(產品 - >基金,產品 - >基金,產品 - >基金),我能夠讓它發揮作用。

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

如果條目數小於給定數量,如何才能使搜索表單顯示條目? (我想的是像200這樣的東西。)如果資金數量太大,我想提供一條消息,說“太多資金 - 請縮小搜索范圍”。 如果資金數量為0,我想提供一條消息,上面寫着“沒有可用資金 - 請擴大您的搜索范圍”。

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

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

如果您使用ransack,那么您可以調用這樣的方法。

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

如果您想阻止加載過多,那么您可以隨時在@ search.result上調用.limit(x)方法

希望有所幫助。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM