1

コントローラーのメソッドに AJAX リクエストを行った後、パーシャルをレンダリングしようとしています。これが私の現在のAJAX呼び出しです:

$('.savings_link').click(function(event){
 $.ajax({
    type: 'GET',
    url: '/topics/savings_easter_egg',
    data: {
      savings: data[key]['saving']
    } ,
    dataType: 'json',
  });

 event.preventDefault(); // Prevent link from following its href
});

この呼び出しは現在機能しており、パーシャルを返してレンダリングしようとするコントローラー メソッドにヒットします。

def savings_easter_egg
  @savings = params[:savings] if params[:savings]

  return render :json => {
    :html => render_to_string({
      :partial => "topics/savings",
      :locals => { :savings => @savings }
    })
  }
end

firebug を使用して、応答を得ることができました。

{"html":"<p>Hi</p>"}

これは私の部分的なトピック/節約を反映していますが、ページは再読み込みされず、部分的なものも表示されません.

ただし、実際のパーシャルを実際にリダイレクトまたはレンダリング (表示) したい。何かアドバイス?

4

1 に答える 1

2

あなたのコードは次のようになります

$.ajax({
 type: 'GET',
 url: '/topics/savings_easter_egg',
 data: {
  savings: data[key]['saving']
 },
dataType: 'json',
  success: function(data) {
    $('your div').html(data.html);
 }
});

上記の div に追加するだけで、成功関数でその応答を使用する必要があります。

于 2012-11-10T05:54:13.773 に答える