Todoリストの作成でAjaxを使ったリアルタイム検索で躓いているので質問させていただきます。
今のアプリ構成はListがTodoリストでtaskがその中一つ一つのやるべきタスクという形にしています。(関連付けなども済んでいます。)
実装したいものとしては、一つの検索窓からList,Taskの両方からLikeでキーワード検索を行いたいと考えています。
現状
現在両方のモデルからとりあえずはデータをロードして検索した際にも反応するのですが、objectと表示されどのように名前を表示すれば良いかわかりません...
検索は機能しているみたいでlistにしかない場合は下がundefinedになり、taskにある場合は上がundefinedになります。
一つのDBでの検索は機能するので自分的にはjavascriptの部分ではないかなと考えております。
コード
ソースはこんな感じになっています
controller
1 def search 2 @search = List.where('title LIKE(?)', "%#{params[:keyword]}%"), Task.where('title LIKE(?)', "%#{params[:keyword]}%") 3 render json: @search 4 end
view
1 2<input type="text" id="search"> 3 4<ul id="result"> 5</ul> 6 7<script> 8 $(document).on('turbolinks:load', function(){ 9 $(document).on('keyup', '#search', function(e){ 10 e.preventDefault(); 11 var input = $.trim($(this).val()); 12 $.ajax({ 13 url: './search', 14 type: 'GET', 15 data: ('keyword=' + input), 16 processData: false, 17 contentType: false, 18 dataType: 'json' 19 }) 20 .done(function(data){ 21 $('#result').find('li').remove(); 22 $(data).each(function(i, list){ 23 $('#result').append('<li>' + list[0] + '</li>') 24 /* list[0].titleとすると表示されるが片方がエラーになる。 */ 25 }); 26 }) 27 }); 28}); 29 30</script>
javascriptはあまり使わないので少しわからず相談しました。
このコードも載せてなどあれば載せます
回答お願いいたします!
追記
eachの部分ではこれと同じのがもう一つできていますね。
回答3件
あなたの回答
tips
プレビュー