我的設置與PgSearch和Will-Paginate我的產品索引頁面上的搜索是這樣的:爲什麼我的搜索顯示搜索結果?
的ProductsController
def index
@products = Product.text_search(params[:query]).page(params[:page]).per_page(5)
end
產品型號
include PgSearch
pg_search_scope :search,
def self.text_search(query)
if query.present?
search(query)
else
scoped
end
end
商品索引頁
<%= form_tag products_path, method: :get do %>
<%= text_field_tag :query, params[:query] %>
<%= submit_tag "Search", name: nil %>
<% end %>
<% if @products.blank? %>
No Results
<% else %>
<% @products.each do |product| %>
<%= product.name %>
<% end %>
<% end %>
但是我現在遇到的問題是,當我進入產品索引頁面時,它會顯示所有產品,當我希望它在搜索完成後不顯示任何內容。如果搜索空白,請返回沒有結果但是當您第一次打開頁面時,它什麼也不顯示。這將如何完成?
我想建議將我的答案標記爲已接受的答案。顯然不是因爲它是我的,而是因爲有太多的if/else實際上是不好的做法。如果接收視圖期望收集,則返回一個。如果沒有產品或沒有產品,它可以是一個空集合。 – lsaffie