Solr - Ransack的未定义方法`结果'

时间:2014-11-26 19:55:40

标签: ruby-on-rails solr

我正在开发一个关于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的未定义方法“结果”::搜索&gt;:Ransack ::搜索

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

有任何帮助吗?谢谢!

2 个答案:

答案 0 :(得分:3)

裘德,改变你的

@deals = @search.results 

@deals = @search.result

答案 1 :(得分:0)

您是否偶然使用sunspot宝石?

  

如果您使用Active Admin和Rails的Sunspot gem,请注意:   他们在搜索方法上发生冲突导致一些非常混乱   结果

     

Active Admin依赖于meta_search,它提供了一个   Active Record类的.search()方法。太阳黑子试图提供   相同的方法,别名来自solr_search,但仅限于方法   尚未存在。

     

简而言之,可以使用solr_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/