Подстановочный знак «%» можно использовать в любом месте запроса, чтобы указать, что там можно найти строку любой длины. Удалите первый '%' для поиска результатов, которые начинаются только с # {params [: q]}, а не содержат его:
AccountNumber.where("account_number like?", "#{params[:q]}%")