如何实施 Ransack gem
How to implement Ransack gem
我正在尝试在每个网页的 header 处设置一个搜索表单,该表单将搜索我所有 "products"
的姓名
我尝试实施搜查 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
我正在尝试在每个网页的 header 处设置一个搜索表单,该表单将搜索我所有 "products"
的姓名我尝试实施搜查 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