没有这样的过滤器属性' deleted_at'使用Thinking Sphinx时

时间:2016-03-14 16:16:54

标签: ruby-on-rails ruby thinking-sphinx soft-delete

我遇到一些Thinking Sphinx的问题,我不允许我在数据库中的deleted_at列进行搜索。

基本上,我希望获得所有用户,活动用户和已删除用户的列表,然后能够取消删除管理员定义的某些用户。不幸的是,我甚至无法在使用Thinking Sphinx时列出已删除的用户。当我定期搜索“删除_不是空”的所有用户时,我可以获得用户。

我可以在索引中做任何其他字段,但不是deleted_at。每一次,我都明白了:

ERROR -- : index user_core: no such filter attribute 'deleted_at' (ThinkingSphinx::SphinxError)

这是我的索引文件:

ThinkingSphinx::Index.define :user, :with => :active_record, :delta => true do
  indexes first_name,     :sortable => true
  indexes last_name,      :sortable => true
  indexes email,          :sortable => true
  indexes phone,          :sortable => true
  has deleted_at,         :as => :deleted
  has id,                 :as => :user_id
  has roles(:id),         :as => :role_ids
  set_property :delta =>  true
end  

我的疑问:

params[:with][:deleted_at] = 0

@results = User.search :conditions => params[:conditions], :with => params[:with], 
:order => params[:sort] + ' ' + params[:sort_mode], :page => params[:page], 
:per_page => params[:per_page], :star => true

注意:即使我只做@results = User.search,我仍然只能获得deleted_at为空的所有活跃用户的列表。在使用Thinking Sphinx时,我似乎无法获得所有用户。

0 个答案:

没有答案