将数据从Ruby(rails)代码发送到javascript/jquery

将数据从Ruby(rails)代码发送到javascript/jquery,javascript,jquery,ruby-on-rails,ruby,ruby-on-rails-3,Javascript,Jquery,Ruby On Rails,Ruby,Ruby On Rails 3,我最近开始从事一个涉及RubyonRails/javascript/jquery的项目。我对这一切都很陌生。我参与的部分是这样的。用户点击一个按钮。将打开一个对话框,用户将在其中输入要搜索的术语。有了这个术语,我将通过查看xml来构造URI。然后我会做一个休息电话。响应将是一个XML文件。我将解析它,并在用户输入要搜索的术语的同一对话框中显示数据 我正在使用JQuery创建一个对话框。我正在ruby代码助手类中执行解析和REST调用部分。我不使用模型和控制器为我的一部分。现在,我需要将数据从he

我最近开始从事一个涉及RubyonRails/javascript/jquery的项目。我对这一切都很陌生。我参与的部分是这样的。用户点击一个按钮。将打开一个对话框,用户将在其中输入要搜索的术语。有了这个术语,我将通过查看xml来构造URI。然后我会做一个休息电话。响应将是一个XML文件。我将解析它,并在用户输入要搜索的术语的同一对话框中显示数据

我正在使用JQuery创建一个对话框。我正在ruby代码助手类中执行解析和REST调用部分。我不使用模型和控制器为我的一部分。现在,我需要将数据从helper方法发送到erb文件,在该文件中,我将以表的形式显示数据。输出将是这样的

线11线12线13 string21 string22 string23 string31 string32 string33 . . . . . .

现在,在ruby代码中,我为每一列创建了3个数组。我不确定如何将数据从ruby发送到html/javascript。如果有更好的方法,请告诉我。例如:与其作为3个单独的数组发送,不如作为xml/json发送?或者其他任何建议都会很有帮助。主要是我不了解如何将这些数据发送到erb文件。先谢谢你

编辑:添加示例代码

Javascript/Jquery-

单击按钮,我想调用erb文件中的ruby方法 前任: erb文件还有其他javascript/html代码来显示其他内容

在helper方法中,我有getUserList方法

def getUserList(search)
uri = create_url(search)
@doc = Nokogiri::HTML(open(uri))
//Doing parsing and other stuffs here
//creating 3 array as mentioned above which needs to be displayed
end
我想显示上面的数组。我不确定如何将这些数组发送到在控制器中调用此方法的erb文件:

def users
  respond_to do |format|
    format.js do
      render(:js => "callback(#{@users.to_json});")
    end
  end
end
在HTML中使用类似这样的内容来调用:

<%= link_to_remote "get users", :url => { :action => "users" } %>
有关从Rails操作呈现普通JavaScript的更多信息:

本例构造了JavaScript,该JavaScript使用JSON数据在JavaScript代码中调用回调函数。回调函数将接收一个易于解析的JSON字符串。如果您真的需要,也可以使用xml发送xml,但解析JSON要简单得多,速度也更快

在本例中,您不需要助手,因为包含数据的JavaScript调用将直接来自您的控制器。没有视图模板,因此不需要帮助器。获取@users的代码最好放在用户模型类中。不是活动记录模型,只是普通模型。从远程RESTAPI获取用户的代码可能是类方法。如果您感到懒惰,那么可以在用户控制器操作中设置@users和restapi响应。但这并不是Rails的理想用途,因为Rails的全部要点是MVC

如果您使用的是jQuery,那么您还可以使用jQuery的getJSON函数,以便您的控制器只发送JSON数据,而不使用回调:


请注意,这是您似乎正在寻找的简单答案,但对于更复杂的应用程序来说,这并不是做这类事情的最佳方式。目前做这类事情的最好方法是使用类似Backbone.js的东西。使用Backbone.js,您可以在JavaScript中定义用户集合,设置该集合的剩余URL。它可以是Rails应用程序中的URL,该应用程序从其他API传递数据,然后您只需在JavaScript中调用users.fetch来加载数据。它与活动记录非常相似,但适用于客户端站点。它更好,因为它抽象了流程,允许您更新和删除记录,并简单地列出它们。

您有一些到目前为止尝试过的示例代码吗?我有点不明白你想做什么。你说你在做解析和REST调用,而不是在模型和控制器中?那么,根据定义,这不是REST调用吗?可能是YouroRuby的一些示例代码,以及您现在使用的jquery/html,试图使其成为最简单的版本,作为概念的证明。很抱歉,不清楚。我正在对其他一些不是我写的web服务进行REST调用。例如,我正在对TwitterRESTAPI进行REST调用。在对话框中,用户将输入要搜索的术语ex:user。基于搜索词,我正在进行REST调用以在twitter中搜索用户。我将用示例代码更新我的帖子。这可能有用,谢谢。我在项目中使用了Vanilla javascripts和getJSON。这帮了大忙