我正在使用带有Rails 5的Ransack来按其描述搜索图库中的图像。搜索表单位于导航栏中,Ransack仅在我显示图片库页面时为我提供结果。当我显示任何其他包含相同导航栏的页面时,搜索不会返回任何结果。
来自_header.html.erb的代码:
<div class="form-group">
<%= search_form_for @q, url: search_pins_path, html: { method: :post } do |f| %>
<%= f.search_field :description_cont, type: "text", class: "form-control", placeholder: "Search" %>
<%= f.submit 'Search', class:"btn btn-default"%>
<% end %>
</div>
application_controller.rb:
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
before_action :set_global_search_variable
def set_global_search_variable
@q = Pin.ransack(params[:q])
end
end
在显示来自同一导航栏的任何其他页面时,如何从Ransack搜索中获得结果?
答案 0 :(得分:0)
添加到您的路线:
resources :pins do
collection do
match 'search' => 'pins#search', via: [:get, :post], as: :search
end
end
在application.controller中:
before_action :set_global_search_variable
def set_global_search_variable
@q = Pin.search(params[:q])
end
def search
index
render :index
end
在引脚控制器中:
def index
@pins = @q.result
end