此范围内的“拆分”有什么作用?

时间:2016-02-06 18:38:23

标签: ruby-on-rails

我在博文上发现了这个范围......

scope :search_by_title, -> (title) { where("(title like ?) OR title in (?)", "%#{title}%", title.split) }

......而我正在试图找出OR对的后半部分。

如果查询是“香蕉蛋糕”, 在我看来,范围将像这样工作

scope :search_by_title, -> ("banana cake") { where("(title like ?) OR title in (?)", "%banana cake%", ["banana","cake"]) }

这根本没用。

任何人都有一个例子来演示这个范围如何运作?

由于

1 个答案:

答案 0 :(得分:2)

  • 当您的标题包含" OR"

  • 时,范围的第一部分(banana cake之前)将起作用
  • 当您的查询为" OR"时,范围的第二部分(banana之后)将起作用或" cake"。

  • 因此,它很有用,因为您可以搜索" banana cake"或" banana"或" cake"。

  • 如果您没有title.split部分,那么您可以搜索" banana"或" cake"不行。它仅适用于" banana cake"。