簡體   English   中英

如何實現Ransack gem

[英]How to implement Ransack gem

我正在嘗試在每個網頁的標題處使用搜索表單,以搜索我所有“產品”的名稱

我嘗試實施ransack gem,但沒有得到產品過濾結果。 通過下面的代碼,它僅獲取數據庫中的所有產品並顯示。 我只想顯示搜索到的產品。

# routes.rb
resources :product do
  collection do
    match 'search' => 'products#search', via: [:get, :post], as: :search
  end
end

# application.controller.rb
before_filter :set_global_search_variable
def set_global_search_variable
  @q = Product.search(params[:q])
  @product_search = @q.result
end

# application.html.erb
<% search_form_for(@q, url: /search, method: :get)  do |f| %>
  <%= f.label :name %>
  <%= f.text_field :name %>
  <%= f.submit %>
<% end %>

# search_index.erb
<% @product_search.each do |product| %>
  <%= image_tag product.image_url %>
    <%= product.name %>
  <% end %>
<% end %>

查看代碼

= search_form_for @product_searcher || Product.ransack, url: main_app.admin_products_path do |f|

控制器代碼

def index
  params[:q] ||= { }
  @product_searcher = Product.ransack(params[:q])
  @products = @product_searcher.result
end

暫無
暫無

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

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