Rails通过full_name中的first_name搜索用户

时间:2018-03-05 05:35:53

标签: ruby-on-rails postgresql sqlite

我拥有属性User的{​​{1}}模型。我希望用户只用他们的名字或姓氏进行搜索。 我试过了

full_name

但问题是当我使用这个唯一的查询进行搜索时,full_name将始终返回nill,因为此查询仅搜索确切的" rony"在full_name而不是例如" rony sianturi"中,您在执行此查询时是否有任何其他建议?谢谢。

我搜索过类似的问题,但所有其他问题都是这个问题的归纳。所以没有运气

谢谢。

2 个答案:

答案 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了解更多详情&高级查询。