Rails 4.1 - 思考 - 狮身人面像协会无法正常工作

时间:2014-07-21 13:38:32

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

我有一个Rails应用,其中包含两个模型,PostUser,我正在使用Sphinxthinking-sphinx gem来启用搜索。每个帖子都属于一个用户belongs_to,每个用户都可以有很多帖子。当我搜索帖子时,我也希望能够通过创建帖子的用户名进行搜索。我的帖子索引如下:

ThinkingSphinx::Index.define :post, :with => :active_record do
  indexes name, :sortable => true
  indexes post_description
  indexes user.name, as: :post_user

  has user_id, team_id, created_at, updated_at
end

我的用户索引如下所示:

ThinkingSphinx::Index.define :user, :with => :active_record do
  indexes name, :sortable => true
  indexes email
  indexes about

  has team_id, created_at, updated_at
end

当我运行:rake ts:index时,出现以下错误:

rake aborted!
NoMethodError: undefined method `_reflect_on_association' for #<Class:0x007fd417610c90>

关于如何解决它的任何想法?

更新

我很确定当我没有出现任何错误时,这条线会导致他indexes user.name, as: :post_user。但该协会仍然无法运作..

1 个答案:

答案 0 :(得分:5)

这是由于joiner gem(版本0.3.2)中的更新,需要Rails >= 4.1.2

请参阅此提交:https://github.com/pat/joiner/commit/de1403ec85d21dabf21a715ae962ee31c6ffe8d1

更新到Rails 4.1.2或将以下内容添加到Gemfile

gem 'joiner', '0.3.1'