一尘不染

Rails:如何通过包含特定字符串的字段进行find_by

sql

我有一个名为Topic的模型,该模型具有一个名称作为字段。

所以说我有一个我要搜索的术语,苹果。

如果我做一个

Topic.find_by_name("apple")

我得到了一个记录,名字叫苹果。很好-
但是如何更改find​​_by_name以便它既可以找到“苹果汁”也可以找到“苹果汁”-基本上是,找到包含原始查询或与原始查询完全匹配的名称?

编辑: 感谢您的所有答复。我想应该早一点说清楚一点,但是如果我想用一个变量名来查找(显然我不想每次都用“ apple”来查找:))怎么办?

我该如何操作Topic.where来适应呢?所以像…

@topic = Topic.where(......., @name)

阅读 186

收藏
2021-03-17

共1个答案

一尘不染

我认为类似这样的方法应该起作用:

Topic.where("name like ?", "%apple%")

为了适应您的编辑:

Topic.where("name like ?", "%#{@search}%")

基本的字符串插值,您使用的@search是字符串内部的值%%,因此@search = "apple"您最终得到 %apple%

2021-03-17