据我们所知
Things.where(“topic =?”,“blah”)
搜索符合“blah”的
主题
但是,如果我想搜索包含“bla”的主题,该怎么办?
我该怎么做?
这是描述它的
post.
基本上,您使用SQL LIKE
expression来匹配包含某些内容的字符串.使用where(“类似主题?”,“%bla%”)就可以了.
然而,由于缺乏消毒,天真的解决方案容易受到攻击.如果用户键入自己的%通配符,他可以获取您不想提供的数据!上面的帖子建议您手动清理此类用户输入:
escaped_str = "bla".gsub ('%','\%').gsub ('_','\_')
Topic.where("topic like ?","%" + escaped_str + "%")