【问题标题】:acts-as-taggable-on tagged_with or_where?在 tagged_with or_where 上充当可标记?
【发布时间】:2011-06-07 22:26:00
【问题描述】:

我正在尝试将 OR WHERE 查询到作为可标记的查询中,就像这样......

Business.tagged_with(params[:query], :any => true)

但我也想同时执行这样的 or_where...

Business.tagged_with(params[:query], :any => true).or_where('name LIKE ?', "%#{params[:query]}%")

这显然不起作用,因为没有 or_where 方法,但有人知道如何正确执行此操作吗?

简而言之,我正在尝试查找与任何标签或公司名称相匹配的内容。谢谢。

【问题讨论】:

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


    【解决方案1】:

    您可以使用 | 将两个查询组合在一起。像这样的运算符:

    Business.tagged_with(params[:query], :any => true) | Business.where('name LIKE ?', "%#{params[:query]}%")
    

    请注意,这将急切加载结果,因此在此之后您不能再应用任何条件,例如排序。它将返回一个包含所有匹配结果的数组,不包括重复项。

    【讨论】:

    • 如果您有分页,这将不起作用,因为它会忽略这一点。
    猜你喜欢
    • 1970-01-01
    • 2011-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多