Это основная сфера для поиска имени, он обрабатывает поиск «только first_name», «last_name только» или поиск полной имя.
Если вы разделили запрос на массив, вы можете захватить первый и последний из массива и не имеет значения, является ли запрос длиной один или два.
Вы могли бы заменить раскол с регулярным выражением, если это необходимо
Вы могли бы, очевидно, расширить на этом (например, без учета регистра, упорядочивание), но дает основную идею.
Также обрабатывает запрос nil по умолчанию на пустую строку, если полоса выходит из строя.
scope :named,->(query) do
query.strip! rescue query = ""
query_words = query.split(' ')
where(["first_name LIKE ? OR last_name LIKE ?", "#{query_words.first}%", "#{query_words.last}%"])
end
Надеется, что это помогает