我在博文上发现了这个范围......
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"]) }
这根本没用。
任何人都有一个例子来演示这个范围如何运作?
由于
答案 0 :(得分:2)
当您的标题包含" OR
"
banana cake
之前)将起作用
当您的查询为" OR
"时,范围的第二部分(banana
之后)将起作用或" cake
"。
因此,它很有用,因为您可以搜索" banana cake
"或" banana
"或" cake
"。
如果您没有title.split
部分,那么您可以搜索" banana
"或" cake
"不行。它仅适用于" banana cake
"。