0

我是一个相当新的 Web 开发人员,并且在解决 Rails 应用程序的所有部分如何交互时遇到了一些问题。我正在使用导轨 3.2

基本上,我希望做的是从包含一些独特格式数据的远程网站检索响应。然后需要解析这些数据以提取重要的部分,然后这些部分需要用于在我的页面上生成部分。

在我使用的控制器中:

require 'net/http'
@result = Net::HTTP.get(URI.parse("http://remote.website.toget.data"));

然后在不生成部分的情况下初始呈现页面。在此之后,我使用脚本标记将 @result 解析为包含我需要的数据的数组:

var myData='<%= @result %>';
var myDataCleaned = myData.replace(/%20/g, " ");
while(gameTeams = regexGameTeams.exec(myDataCleaned)){
myTeams[count] = new Array();
myTeams[count][0] = gameTeams[1];
myTeams[count][1] = gameTeams[2];
count++;
}

现在我对如何使用这些数据来生成我的部分感到困惑。研究表明,将其作为本地传递给 <%= render 'partial' %> 调用是不可能的,那么我该如何进行这项工作呢?我的猜测是我以错误的方式解决了这个问题,需要在呈现页面之前以某种方式完成解析,然后将结果传递给控制器​​,但我似乎无法弄清楚。如果有人能指出我正确的方向,将不胜感激!!

4

2 回答 2

0

你是对的,你应该解析 ruby​​ 中的数据(在进行远程调用的控制器中)并从提取的数据中构建你的部分。
数据是什么格式的?

如果是的话json,你可以使用parsed_data = JSON.parse(data)

但即使它采用不同的格式,ruby 也使解析相对容易。

于 2013-02-25T20:27:09.383 回答
0

如果您的目标是在部分内部提供对 Javascript 的 Rails/Ruby 变量的访问,那么在部分内部您会使其输出 JS 代码,例如:

some_js_var = <%= some_local_ruby_var_that_is_in_scope %>

或者

some_js_var = <%= @some_instance_ruby_var_that_is_in_scope %>

您不能将 Javascript 变量传递到 Rails 部分而不向服务器发出请求,因此您需要在服务器上进行响应解析等,或者如果您出于某种原因必须在 Javascript 中进行解析,那么你会在 Rails 端设置一些 JSON 服务来处理来自 JS 端的 JSON 请求,但这有点傻。

于 2013-02-25T20:37:18.477 回答