私は自分のレールアプリケーションの検索フォームに取り組んでいます。ここで私は今持っているものです。レールで検索結果を動的に表示する方法
マイビュー:
<%= form_tag search_suggestions_path, method: 'get', id: 'all-games-search' do %>
<%= text_field_tag :games_search, (params[:games_search].present? ? params[:games_search] : nil),
class: 'search-input', placeholder: 'Search games...', autocomplete: 'off' %>
<ul id="results"></ul>
<%= button_tag name: nil, class: 'submit-button' %>
<% end %>
コントローラー:
def search_suggestions
query = params[:games_search]
results = if query.present?
response = []
Game.where('title ILIKE ?', query.to_s).each do |game|
obj = {id: game.id, title: "#{query}"}
response << obj
end
response
else
[]
end
render json: results
end
そしてJS:
$('#games_search').bind('change input paste', function() {
var val = $(this).val();
$.get('/search_suggestions?games_search=' + val, function (data) {
$('#results').empty().show();
$.each(data, function(index, results) {
$('#results').append('<li>' + results.title + '</li>').click(function() {
location.href = '/games/' + results.id;
});
});
});
});
のThコード作品ですが、ゲーム全体のタイトルを入力するだけで結果が得られます。私が必要とするのは、ゲームのタイトルの最初の数個のシンボルが検索入力に入力されたときに、検索結果を表示することです。先にありがとう。
http://stackoverflow.com/questions/29345690/how-to-use-like-clause-query-in-rails – Iceman
ええ、ありがとう、ちょうど補間で%%を逃しました。 –