【问题标题】:Best practice for rails-javascript interaction?rails-javascript交互的最佳实践?
【发布时间】:2011-04-07 20:36:09
【问题描述】:
我有一个显示 Google 地图的页面。我想使用 Javascript 从我的数据库中获取几个点并将它们作为标记放置在地图上。所以流程是:
- Javascript 调用带有参数的 Rails 操作。
- Rails 查询数据库。
- Rails 返回响应。
- Javascript 更新页面(Rails 不能这样做,因为它必须知道 JS 地图对象)。
目前实施这种方案的最佳做法是什么?我知道我可以使用 Prototype Ajax.Request 来调用 Rails 操作,但是当 Rails 操作返回其结果时,我应该如何调用更新页面的 Javascript 函数?我应该更新一些隐藏的 HTML 并让事件监听器监听它吗?还是有更好的办法?
【问题讨论】:
标签:
javascript
ruby-on-rails
ajax
【解决方案1】:
您有几个选择。
1) 您的 ajax 请求可以是“脚本”类型,这将允许您编写您的 rails 应用程序呈现的 action_name.js 文件。这可以访问您的所有页面项目(但它不太可能访问您的地图对象,除非它是公开的)
2) 我的偏好是让您的 javascript 查询 json 数据(类型“json”),然后您可以在 JS 中随意使用该数据。我不使用原型,但一般流程是。
- 初始化您的地图
- 使用 ajax 查询一些 json 数据(即带有纬度/经度的位置)
- rails reponds_to do |f| f.json { render :json => some_hash} 结束
- 在您的 ajax 回调(返回 javascript)中,迭代 json 数据并适当地向您的地图添加点。 (或随心所欲)