我有一个名为Topic的模型,该模型具有一个名称作为字段。
所以说我有一个我要搜索的术语,苹果。
如果我做一个
Topic.find_by_name("apple")
我得到了一个记录,名字叫苹果。很好- 但是如何更改find_by_name以便它既可以找到“苹果汁”也可以找到“苹果汁”-基本上是,找到包含原始查询或与原始查询完全匹配的名称?
编辑: 感谢您的所有答复。我想应该早一点说清楚一点,但是如果我想用一个变量名来查找(显然我不想每次都用“ apple”来查找:))怎么办?
我该如何操作Topic.where来适应呢?所以像…
@topic = Topic.where(......., @name)
我认为类似这样的方法应该起作用:
Topic.where("name like ?", "%apple%")
为了适应您的编辑:
Topic.where("name like ?", "%#{@search}%")
基本的字符串插值,您使用的@search是字符串内部的值%%,因此@search = "apple"您最终得到 %apple%
@search
%%
@search = "apple"
%apple%