我尝试在我的应用程序中使用'ransack'搜索,只要它在控制器的索引视图中就可以工作,当我尝试在partials中使用相同的代码时它不起作用。 partial有标题,其中有一个搜索字段
专家控制器的索引操作如下所示:
def index
@search = Expert.search(params[:q])
@experts = @search.result
end
我在专家的索引视图中使用的代码是
<form class="navbar-form navbar-left" role="search">
<%= search_form_for @search do |f| %>
<div class="form-group">
<div class="field">
<%=f.text_field:Location_or_Description_or_Industry_or_Current_Organization_or_Current_Position_cont, :class => "form-control" %>
</div>
</div>
<%= f.submit "Search" , :class => "btn btn-default icon-search" %>
<% end %>
</form>
我正在尝试部分使用此代码,以便我可以从我的应用中的任何给定页面进行搜索。我这样做的错误是
ArgumentError in Praclycore#index
Showing c:/repos/pracly/app/views/layouts/_header.html.erb where line #24 raised:
No Ransack::Search object was provided to search_form_for!
<li class="home"><%= link_to image_tag("/img/home.png"), root_path, :class=>"home" %></li>
<form class="navbar- form navbar-left" role="search">
<%= search_form_for @search do |f| %>
<div class="form-group">
<div class="field">
<%= f.text_field :Location_or_Description_or_Industry_or_Current_Organization_or_Current_Position_cont, :class => "form-control" %>
Trace of template inclusion: app/views/layouts/application.html.erb
Rails.root: c:/repos/pracly
我是ruby on rails的新手,如果有人能告诉我如何使用部分搜索功能以及我需要提供哪些其他代码才能工作,我将非常感激。
答案 0 :(得分:0)
@search
实例变量在Expert#search
以外的任何上下文中都不可用 - 您需要设置该变量(或者更好的是,使用decent_exposure gem)并将其公开在ApplicationController级别或在之前的过滤器中创建它。