2012-05-05 17 views
0

私はkeyupでajaxリクエストを送信し、コンテンツを置き換えるための応答を与える入力テキストを持っています。私のフォームはこのように見えます。Rails ajaxが動作しないコンテンツを置き換える

= form_for(:search, :url => "https://stackoverflow.com/users/search", :remote => true) do |f| 
    = f.label :user, "Type to find users" 
    = f.text_field :user 

UsersControllerの検索アクションでは、ajaxデータに基づいてユーザーが検索され、search.js.erbテンプレートがレンダリングされます。私の検索動作はこのように見えます。

def search 
    @users = User.search(params[:user]) 
    respond_to do |format| 
     format.js{} 
    end 
    end 

ここで、search.js.erbテンプレートは単純です。

$('.users_info').html(<%=j render @users %>); 

私がファイヤーバグを見ても、ページ内のコンテンツを置き換えない場合の応答は正しいです。私は警告を発すると、ユーザーに警告します。ページ内の既存のコンテンツを置き換えることができないのはなぜですか?私が間違っていることがありますか?

答えて

1

js.erbを使用することは本当に必要ですか?それはあなたが本当に必要な場合は、あなたの場合、あなたがあり、単に

$('form').bind('ajax:success', function(e, data){ 
    $('.users_info').html(data); 
}); 

でのように見える、試してみてください。

$('.users_info').html('<%=j render 'search_user' %>'); 
+2

私は今、私のミスを知って、私はIRB cpdesの前後に引用符を置くことを忘れてしまいました – Sandeep