我拥有属性User
的{{1}}模型。我希望用户只用他们的名字或姓氏进行搜索。
我试过了
full_name
但问题是当我使用这个唯一的查询进行搜索时,full_name将始终返回nill,因为此查询仅搜索确切的" rony"在full_name而不是例如" rony sianturi"中,您在执行此查询时是否有任何其他建议?谢谢。
我搜索过类似的问题,但所有其他问题都是这个问题的归纳。所以没有运气
谢谢。
答案 0 :(得分:1)
尝试将like
与通配符一起使用:
User.where("username = ? OR full_name like ?", "rony", "%rony%")
答案 1 :(得分:0)
您可以使用Arel构建查询。例如,此处的搜索查询就像
User.where(
User.arel_table[:name].eq("#{key_word}").
or(
User.arel_table[:name].lower.matches("%#{key_word.downcase}%")
)
)
请查看Arel documentation了解更多详情&高级查询。