我遵循了 Hartl 的 Rails教程,他在其中使用 RJS 进行 Ajax,并在响应中发送 javascript 以在客户端执行以编辑 DOM。
但是,如果您只想在响应中发送 JSON 而不发送 javascript,您会怎么做。这也意味着操作 DOM 的 javascript 应该已经在客户端的 html 文件中。有没有像 Hartl 的书一样好的关于如何在 Rails 中做到这一点的教程。大概它会使用 Jquery 和其他一些我没有听说过的东西来使代码不是一百万行?
我对答案的最佳尝试是,它实际上取决于您要实现的目标的范围和复杂性。通常,JSON 会显示在视图中。如果您的应用程序不需要您动态检索 JSON,也就是说,您可以在最初呈现视图时将其全部加载,那么您可以像这样在视图的控制器中设置一个实例变量
@my_json = some_object.to_json()
然后,您的实例变量在您的视图中可用
<script type = 'text/javascript'>
var theJSON = <%= @my_json %>
</script>
如果您的应用程序要求您在加载控制器/视图后动态检索 JSON,那么您可能应该考虑使用 AJAX 来访问返回所需 JSON 的特定控制器方法。
这是一个很好的 RailsCast,希望可以帮助您将数据传递给 Javascript