0

我只是尝试使用 Google API 进行快速货币转换,并使用 jQuery 或 Rails 方法在 rails 视图中仅显示“汇率”信息。

返回的 JSON 格式如下:

{"to": "EUR", "rate": 0.74928817599999997, "from": "USD"}

到目前为止,我已经尝试了一个 jQuery Ajax 请求,如下所示:

$(document).ready(function(){
$.getJSON('http://rate-exchange.appspot.com/currency?from=USD&to=EUR', function(data) {
  var items = [];

  $.each(data, function(key, val) {
    items.push('<li id="' + key + '">' + val + '</li>');
  });

  $('<ul/>', {
    'class': 'my-new-list',
    html: items.join('')
  }).appendTo('#exchange');
});
});

我实际上并不需要 items 数组或无序列表。我刚刚从 jQuery 文档中复制了大部分内容,以确保它应该可以工作。

如果有任何关于此代码的帮助,或者是否有更好的 Rails 方式来实现相同的东西,我将不胜感激。

4

2 回答 2

0

如果您想在客户端发出请求,您可以使用 jsonp 发出请求(不允许通过 JavaScript 跨不同主机的正常 HTTP 请求):

$.ajax({
  type: "GET",
  url: "http://rate-exchange.appspot.com/currency?from=USD&to=EUR",
  dataType: "jsonp",
  success: function(data) {
    $('#yourId').html(data.rate); // populate the HTML element with id 'yourId' with the rate
  }
});
于 2013-08-08T21:51:10.133 回答
0

如果您可以从服务器中的 Rails(而不是浏览器内的 javascript)向 Google API 进行查询,则使用

 @result=JSON.parse(response_body_as_string)

@result 将是一个 Ruby 哈希对象,您可以根据需要在 Rails 视图中使用它。

如果您打算从服务器连接到 Google API,最好将其作为后台作业进行,并将结果保存到数据库中以供接下来一小时使用。

于 2013-08-08T21:15:52.753 回答