ссылка_в алфавитный поиск - PullRequest
0 голосов
/ 01 марта 2012

У меня есть метод link_to в рельсах для каждой буквы алфавита (еще рано, я сделаю это позже).У меня то же самое для консоли на другой странице, и она работает нормально, но на моей странице для букв нет.

В моей модели есть следующее:

def index
 user_relation = case params[:username].present?
  when true then User.where(:username => params[:username])
  else User
  end

  @users = user_relation.paginate :page=>params[:page], :order => 'created_at desc', :per_page => 10
end

и это пример в моем индексе:

<%= link_to 'A', users_path(:username => 'A'), {:style=>'color:#FFFFFF', :class => "tabel-3"}%>

Теперь, если я нажму на A, он не вернет никаких результатов, несмотря на то, что есть много пользователей с буквой A, но если бы я был, например, поставить в скобкиимя AdrianShaw (один из пользователей в моей базе данных) и нажмите кнопку A, это вернет именно этого пользователя.Похоже, что он выполняет поиск, но только для точных результатов поиска, который меньше полного слова, и он не возвращает.

Как бы я поступил так, чтобы все пользователи получали первую буквуА и так далее?

1 Ответ

1 голос
/ 01 марта 2012

Вам нужно искать с помощью оператора like:

when true then User.where("username LIKE ?", "#{params[:username]}%")

с оператором LIKE и с % вы ищете запись с именем пользователя, начинающимся с params[:username].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...