所以我在模型上使用acts_as_taggable。我希望能够找到某种%LIKE%
匹配的标签,但我不确定如何。
我当前的代码:
@companies = Company.tagged_with(@query, :any => true)
这样做不起作用:
tagged_with("%#{@query}%", :any => true)
有任何想法吗?
所以我在模型上使用acts_as_taggable。我希望能够找到某种%LIKE%
匹配的标签,但我不确定如何。
我当前的代码:
@companies = Company.tagged_with(@query, :any => true)
这样做不起作用:
tagged_with("%#{@query}%", :any => true)
有任何想法吗?
通过先手动获取标签来解决
tags = Tag.where("name LIKE ?", "%#{@query}%").pluck(:name)
@companies = Company.tagged_with(tags, :any => true)
但是,这需要我创建一个空Tag
模型,该模型不是由acts_as_taggable 创建的。
也许不是最好的解决方案,但它有效:)
我宁愿做这个“hack”,然后编写我自己的标记模型。
@companies = Company.tagged_with('query', wild: true)
你应该试试看。
您还可以使用 :wild => true 选项以及 :any 或 :exclude 选项。它将在 SQL 中寻找 %awesome% 和 %cool%