模糊标签与act-as-taggable匹配

时间:2013-07-05 20:46:19

标签: ruby-on-rails-3 acts-as-taggable-on fuzzy-search

所以我在模型上使用 acts_as_taggable 。我希望能够找到某种%LIKE%匹配的标签,但我不确定如何。

我目前的代码:

@companies = Company.tagged_with(@query, :any => true)

这样做不起作用:

tagged_with("%#{@query}%", :any => true)

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

首先手动获取标签解决

  tags = Tag.where("name LIKE ?", "%#{@query}%").pluck(:name)
  @companies = Company.tagged_with(tags, :any => true)

但是,这需要我创建一个空的Tag模型,该模型不是由acts_as_taggable创建的。

也许不是最好的解决方案,但它有效:) 我宁愿做这个“黑客”,然后写我自己的标记模型。

答案 1 :(得分:1)

@companies = Company.tagged_with('query', wild: true)

你应该试试。

<块引用>

您还可以将 :wild => true 选项与 :any 或 :exclude 选项一起使用。它将在 SQL 中寻找 %awesome% 和 %cool%