0

我有一个 rails 3 应用程序,我在其中使用acts_as_taggable_on来标记 Post 模型。我有一个搜索框,可以让我搜索帖子,我使用acts_as_indexed。在我的搜索中,我还希望能够通过扩展 ActsAsTaggableOn::Tag 类以支持acts_as_indexed 来搜索所有标签。我怎么做?

我尝试了以下方法:

# lib/tag.rb
module ActsAsTaggableOn
 class Tag
   acts_as_indexed :fields => [:name]
 end
end

但是当我尝试调用 find_with_index 时出现以下错误:

> ActsAsTaggableOn::Tag.find_with_index('foo')
undefined method `find_with_index' for ActsAsTaggableOn::Tag(id: integer, name: string):Class

更新:我使用acts_as_taggable_on的内置查找器(特别是Tag#named_like)完成了这项工作,但我更喜欢使用acts_as_indexed,因为我将它与我的应用程序中的所有其他模型一起使用,并且我不得不进行特殊情况标记搜索到这个问题。

谢谢,

4

1 回答 1

1

在 Post 模型上扩展 act_as_indexed 声明可能更容易,以便将与每个帖子相关的标签包含在搜索中。

class Post
  acts_as_taggable_on
  acts_as_indexed :fields => [ <existing tag list> , :tag_list]
于 2012-05-14T08:50:22.120 回答