2012-05-01 6 views
0

jQueryの自動完全リストを作成するために、レールインスタンス変数の値を解析するにはどうすればよいですか? 私の '/ user/search'は、項目ごとに複数の値を持つインスタンス変数を返します。私はそれらを組み合わせてリスト項目として提示したい。Rubyのレール - jquery auto complete - リスト項目の複数の値を結合する

def search 
    if (params[:term] =~ /[a-zA-Z]/) 
    @result = User.FindLdap("sAMAccountName", params[:term]) 
    else 
    @result = User.FindLdap("idnumber", params[:term]) 
    end 
    respond_to do |format| 
    format.html { render :partial => 'text_for_autocomplete'} 
    format.js 
    end 
end 

jQueryのサンプルコードを使用していますが、各アイテムリストをそのまま表示する方法があります。私の場合は、複数のLDAP属性を取得して、各リスト項目の属性値を表示する必要があります。 したがって、各リスト項目は、テキストフィールドに入力されたidnumberの単なる値ではなく、""#{sAMAccountName}", "#{idnumber}""のようにカンマで区切られます。あなたはJBuilderを見るために必要なすべての

I get this in the list, actual partial render

+0

なぜHTMLレスポンスの代わりにJSONを使用しないのですか?JBuilder gemを使用して、必要に応じてレスポンスをレンダリングしてください。ここで問題となるのは、サーバーからHTMLを取得し、そのHTMLをエスケープしていることです。 –

+0

@MilanJaric - ありがとう。それを行う方法がわからない、これまでにそれをしたことはありません。試してみます。 –

+1

これは、あなたがerbのHTMLビューを作成するのと同じですが、ここは頭の開始のためのリンクhttp://railscasts.com/episodes/320-jbuilder –

答えて

1

まず -

$(function() { 
    $("#term").autocomplete({ 
     source: function (request, response) { 
      $.post("https://stackoverflow.com/users/search", request, response); 
     }, 
     minLength: 2, 
     select: function(event, ui) { 
      log(ui.item ? 
       "Selected: " + ui.item.value + " aka " + ui.item.id : 
       "Nothing selected, input was " + this.value); 
     } #No idea how it can be done here. 
    }); 
}); 

私は、部分のHTMLをレンダリングリストでこれを取得します。 JBuilderは、json出力のための強力で、明確で信頼性の高いソリューションです。

関連する問題