【问题标题】:ransack search is not working with partials搜查搜索不适用于部分
【发布时间】:2014-02-21 08:57:55
【问题描述】:

我已经尝试在我的应用程序中使用“ransack”搜索,只要它位于控制器的索引视图中,它就可以工作,当我尝试将相同的代码放入部分时它不起作用。部分具有带有搜索字段的标题

专家控制器的索引操作如下所示:

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 的新手,如果有人能告诉我如何使用带有部分的 ransack 以及我需要提供哪些额外代码才能使其工作,我将不胜感激。

【问题讨论】:

    标签: ruby-on-rails ruby search ransack meta-search


    【解决方案1】:

    @search 实例变量在 Expert#search 之外的任何上下文中均不可用 - 您需要设置该变量(或者更好的是,使用 decent_exposure gem)并在 ApplicationController 级别公开它或创建它在前置过滤器中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多