【问题标题】:Ajax and Json with RailsAjax 和 Json 与 Rails
【发布时间】:2012-09-11 22:11:27
【问题描述】:
我关注了 Hartl 的 Rails tutorial,他使用 RJS 进行 Ajax,并在响应中发送 javascript 以在客户端执行以编辑 DOM。
但是,如果您只想在响应中发送 JSON 而不发送 javascript,您会怎么做。这也意味着操作 DOM 的 javascript 应该已经在客户端的 html 文件中。是否有与 Hartl 的 book 一样好的关于如何在 Rails 中执行此操作的教程。大概它会使用 Jquery 和其他一些我没有听说过的东西来使代码不是一百万行?
【问题讨论】:
标签:
javascript
jquery
ruby-on-rails
ajax
rjs
【解决方案1】:
我对答案的最佳尝试是,它实际上取决于您要实现的目标的范围和复杂性。通常,JSON 会显示在视图中。如果您的应用程序不需要您动态检索 JSON,也就是说,您可以在最初呈现视图时将其全部加载,那么您可以像这样在视图的控制器中设置一个实例变量
@my_json = some_object.to_json()
然后,您的实例变量在您的视图中可用
<script type = 'text/javascript'>
var theJSON = <%= @my_json %>
</script>
现在,您的数据在 DOM 中可用,并很好地解析为 JSON。
如果您的应用程序需要您在加载控制器/视图后动态检索 JSON,那么您可能应该考虑使用 AJAX 来访问返回所需 JSON 的特定控制器方法。
这是一个很好的 RailsCast,希望能在你的道路上帮助你Passing Data to Javascript