繁体   English   中英

Solr-Ransack的未定义方法“结果”

[英]Solr - undefined method `results' for Ransack

我正在Ruby on Rails上的一个项目上,想要添加搜索功能。 我按照此网站上的步骤安装了solr gem: http : //es.asciicasts.com/episodes/278-busquedas-con-sunspot

现在,这就是我的控制器的外观:

class DealsController < ApplicationController

  def index
    # @deals = Deal.paginate(page: params[:page])
    @search = Deal.search do  
      fulltext params[:search]  
    end  
    @deals = @search.results
  end

  private
  def deal_params    
    params.require(:deal).permit(:title)
  end
end

这是我的模型:

class Deal < ActiveRecord::Base    
  searchable do  
    text :title, :info1, :page 
  end 
end

这是我的看法:

<div class='container'>
  <div class='row upper_container'>
    <div class='search_container'>
        <%= form_tag deals_path, :method => :get, :class => 'navbar-form navbar-left' do %>  
        <div class='form-group'>
          <%= text_field_tag :search, params[:search], class: 'form-control' %>
        </div>
        <%= submit_tag 'Search', :name => nil %>
      <% end %> 
    </div>
  </div>

  <% @deals.each_with_index do |d, i| %>
    <% if i % 3 == 0 %>
      <div class='row middle_container'>
    <% end %>  
      <div class='col-md-4'>
        <div class='deal_container'>
          <%= d.title %>
          <img src='<%= d.photo %>'>
        </div>
      </div>
    <% if (i % 3 == 2) || (i == (@deals.length - 1))  %>
      </div>
    <% end %>
  <% end %>

  <div class='text-center'>
    <%= will_paginate @deals %>
  </div>
</div>

但我得到以下错误:

Ransack :: Search>:Ransack :: Search的未定义方法`results'

在这一行: @deals = @search.results

有什么帮助吗? 谢谢!

裘德,改变你的

@deals = @search.results 

@deals = @search.result

您是否偶然使用了黑子宝石?

如果您将Active Admin和Sunspot gem用于Rails,请当心:它们在搜索方法上会发生冲突,从而导致一些令人困惑的结果。

Active Admin依赖meta_search,它对Active Record类提供了.search()方法。 Sunspot尝试提供以solr_search为别名的相同方法,但前提是该方法尚不存在。

简而言之,可以使用solr_search()而不是 search() 来完成 搜索:

@search = Profile.solr_search do
  keywords params[:q]
  paginate page: params[:page], per_page: page_size
end

@results = @search.results

http://mrdanadams.com/2012/beware-using-active_admin-and-sunspot-rails-gems-together/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM