Я установил «twitter-typeahead-rails» в свое приложение и настроил его так, чтобы, когда я начинаю вводить текст в поле поиска, предложения выпадали. Затем, когда я нажимаю на предложения, поле поиска заполняется. Но прямо сейчас оно заполняется с помощью displayKey, как в html, который определяет предложения:
<div class='typeahead-name' id='<user.name>'><user.name></div>
Как я могу заставить его заполнить панель поиска только user.name
?
Gemfile
gem 'twitter-typeahead-rails'
окно поиска с вводом текста
<%= form_tag users_path, :method => :get do %>
<%= text_field_tag :search, params[:search], id:"typeahead" %>
<%= submit_tag "Search" %>
<% end %>
<script type="text/javascript">
// initialize bloodhound engine
$(document).ready(function(){
var bloodhound = new Bloodhound({
datumTokenizer: function (d) {
return Bloodhound.tokenizers.whitespace(d.value);
},
queryTokenizer: Bloodhound.tokenizers.whitespace,
// sends ajax request to /typeahead/%QUERY
// where %QUERY is user input
remote: '/typeahead/%QUERY',
});
bloodhound.initialize();
// initialize typeahead widget and hook it up to bloodhound engine
// #typeahead is just a text input
$('#typeahead').typeahead(null, {
displayKey: function(user) {
return "<div class='typeahead-name' id='" + user.name + "'>" + user.name + "</div>";
},
source: bloodhound.ttAdapter(),
});
});
</script>
маршруты
get 'typeahead/:query' => 'users#typeahead'
users__controller.rb
def typeahead
q = params[:query]
render json: User.where('name like ?, "%#{q}%")
end
displayKey
уже не решает? Если я неправильно понял вопрос - person Dhiraj   schedule 09.04.2015user.name
. - person Joe Morano   schedule 09.04.2015displayKey
— это тот, который отображается в текстовом поле после того, как что-то выбрано из раскрывающегося списка. - person Dhiraj   schedule 09.04.2015