MetaSearch在控制器中未定义方法'all'

时间:2011-11-04 04:54:14

标签: ruby-on-rails-3

我希望使用MetaSearch在我的Rails 3应用中搜索用户。但是当我开始关注Railscast 251时,我已经在我的UsersController索引操作中获得了一个未定义的方法'all'。这是代码:

def index
  @search = User.search(params[:search])
  @users = @search.all
end

表格的开头:

<% form_for :search, @search, :html => {:method => :get} do |f| %>
  <%= f.label :high_school_contains %>
  <%= f.text_field :high_school_contains %><br />
  <%= f.submit %>
<% end %>

在Gemfile中:

gem 'meta_search'

Ryan和Ernie Miller都建议在索引操作中沿着这些行编写代码,但显然有些错误。关于它可能是什么的任何想法?

1 个答案:

答案 0 :(得分:0)

您是否使用thinkingsphinx等其他搜索解决方案或在模型中定义搜索方法?如果是,那么它首先定义搜索方法,元搜索不使用它,源代码:

alias_method :search, :metasearch unless respond_to?(:search) 

所以你只需要使用元搜索方法:

@search = User.metasearch(params[:search])