我以为我有这个小菜一碟..但是每当我对任何关键字进行查询时,它都不会从 SQL 加载任何表。我没有错误。
用户.rb
searchable do
string :first_name
string :last_name
string :name
string :email
time :created_at
end
users_controller.rb
class Admin::UsersController < Admin::ApplicationController
def index
s = Sunspot.search User do |query|
query.keywords params[:q]
query.any_of do |any_of|
any_of.with(:first_name)
any_of.with(:first_name)
any_of.with(:email)
any_of.with(:name)
end
query.paginate :page => (params[:page] && params[:page].to_i || 1), :per_page => 20
query.order_by('created_at', 'desc')
end
s.execute!
@users = s.results
render :action => 'index'
end
然后我跑了:
$> script/console
$> User.reindex
当我根本不进行搜索时..它成功显示所有User
结果
我相信我要把所有这些字符串标签都变成文本标签,但这会返回这个错误:
Sunspot::UnrecognizedFieldError in Admin/usersController#index
No field configured for User with name 'first_name'
我缺少什么来响应关键字?