2

我遵循了 Hartl 的 Rails教程,他在其中使用 RJS 进行 Ajax,并在响应中发送 javascript 以在客户端执行以编辑 DOM。

但是,如果您只想在响应中发送 JSON 而不发送 javascript,您会怎么做。这也意味着操作 DOM 的 javascript 应该已经在客户端的 html 文件中。有没有像 Hartl 的一样好的关于如何在 Rails 中做到这一点的教程。大概它会使用 Jquery 和其他一些我没有听说过的东西来使代码不是一百万行?

4

2 回答 2

2

我对答案的最佳尝试是,它实际上取决于您要实现的目标的范围和复杂性。通常,JSON 会显示在视图中。如果您的应用程序不需要您动态检索 JSON,也就是说,您可以在最初呈现视图时将其全部加载,那么您可以像这样在视图的控制器中设置一个实例变量 @my_json = some_object.to_json() 然后,您的实例变量在您的视图中可用

    <script type = 'text/javascript'>
        var theJSON = <%= @my_json %>
    </script>
   

现在,您的数据在 DOM 中可用,并很好地解析为 JSON。

如果您的应用程序要求您在加载控制器/视图后动态检索 JSON,那么您可能应该考虑使用 AJAX 来访问返回所需 JSON 的特定控制器方法。

这是一个很好的 RailsCast,希望可以帮助您将数据传递给 Javascript

于 2012-09-11T23:16:59.660 回答
0

您应该看看Rails 3.1 - A Roadmap 中的 Ajax

于 2013-10-04T16:02:33.143 回答