перечислить одну запись автозаполнения - PullRequest
2 голосов
/ 12 августа 2011

Используя автозаполнение Jquery, когда я набираю первые три буквы, я получаю полный список всех менеджеров, когда я должен получить только одну.У меня есть следующий код из моего контроллера проекта

def project_list  
    list=Project.all.map{|i|i.manager_user_id}
    arr= [].concat(list.sort{|a,b| a[0]<=>b[0]}).to_json
    render :json =>arr
  end

Есть ли что-то, что я сделал не так.

Example

Application.отображается полный список

Отредактировано:

<p>
    <%= f.label :project_name %><br />
    <%= f.text_field :project_name %>
</p>

<p>
    <%= f.label :manager_user_id %><br />
    <%= f.text_field :manager_user_id, :id => "term"%>

</p>

Выше находится страница списка менеджеров, которая содержит форму.Из того, что вы мне объяснили, я думаю, что вы должны поместить переменную 'term' на страницу, как я делал выше?

1 Ответ

1 голос
/ 12 августа 2011

Вы фильтруете результаты по request.term?Если нет, тогда весь список менеджеров возвращается в виде совпадающей строки.

Request.term должен быть отправлен на ваш url: "/managerlist", и это должно вернуть результаты, отфильтрованные по термину.

Итак, ваш URL будет выглядеть следующим образом при отправке с помощью ajax: /managerlist?term=arm.Возьми запрос var term и отфильтруй по нему свой список.Это должно быть сделано на странице managerlist, написанной на ruby ​​(я полагаю).

На самом деле, я хочу сказать, что list на вашей странице ruby ​​должен возвращать данные, отфильтрованныеterm значение:

def manager_list 
list=Project.all.map{|i|i.manager_user_id} 
arr= [].concat(list.sort{|a,b| a[0]<=>b[0]}).to_json 
render :json =>arr
end

list должно содержать только значения, отфильтрованные по term

...