2017-01-04 18 views
0

こんにちは私はjsonを返すAPIを持っているレールでプロジェクトを作成しています。私はこのjsonの内容を取得し、エレガントなやり方でやってください。私はajaxでそれをやったが、レールでのみこれを行う方法があるかどうかを知りたい。 他のURLのjsonからコンテンツを取得する方法

ご清聴ありがとうございました、と私は英語が、私は一般的に、私は

<script language="JavaScript"> 
$(document).ready(function(){ 

$('#people').click(function(){ 

    $.ajax({ 
     url: "http://localhost:3000/people.json", 
     //force to handle it as text 
     dataType: "text", 
     success: function(data) { 

      //data downloaded so we call parseJSON function 
      //and pass downloaded data 
      var json = $.parseJSON(data); 
      //now json variable contains data in json format 
      //let's display a few items 

      for (var i=0;i<json.length;++i) 
      { 
       $('#response').append('<div class="name">'+ json[i].name + json[i].age + json[i].gender + json[i].lonlat + json[i].name +'</>'); 
      } 
     } 
    }); 

}); 

}); 
</script> 

答えて

0

あなたはRails UJSを使用することができます必要なものを供給するために、次のコードを使用し私の主な言語

ではないことを言う必要がある:

<%= link_to "Something", something_path, id: "people", data: { remote: true, type: 'json' } %> 

Rails UJSは、イベントハンドラをdata-remote="true"属性を持つリンクとフォームにバインドします。ハンドラは、デフォルトでJS形式の応答を取得しようとします。これは、data-type="json"を設定してオーバーライドします。

RailsのUJSは、我々はにタップすることができます発信ノード上custom eventsを発射:

// Put this in application.js or somewhere else in app/assets/javascripts 
// not inline. 
$(document).on('ajax:success', '#people', function(data, status){ 
    var $el = $('#response'); 

    $.each(data, function(p){ 
    $el.append(
     '<div class="name">'+ p.name + p.age + p.gender + p.lonlat + p.name +'</div>' 
    ); 
    }); 
}); 

それを行うための別の方法はjs.erbテンプレートを作成することであるが、混乱のさらに悪いのthats。

+0

ありがとう、私はあなたが私に言ったことをします。 :) –

関連する問題