rails-javascript交互的最佳实践?

时间:2010-09-03 13:20:06

标签: javascript ruby-on-rails ajax

我有一个显示Google地图的页面。我想使用Javascript从我的数据库中获取几个点并将它们作为标记放在地图上。所以流程是:

  1. Javascript使用参数调用Rails操作。
  2. Rails查询数据库。
  3. Rails返回响应。
  4. Javascript更新页面(Rails无法执行此操作,因为它必须知道JS地图对象)。
  5. 实施此类方案的当前最佳做法是什么?我知道我可以使用Prototype Ajax.Request来调用Rails动作,但是当Rails动作返回结果时,我该如何调用更新页面的Javascript函数?我应该更新一些隐藏的HTML并让事件监听器听吗?或者有更好的方法吗?

1 个答案:

答案 0 :(得分:3)

你有几个选择。

1)你的ajax请求可以是'script'类型,它允许你编写rails app渲染的action_name。js文件。这可以访问您的所有页面项目(除非是公开的,否则它不太可能访问您的地图对象)

2)我的首选项是对json数据进行javascript查询(输入'json'),然后允许您在JS中使用该数据。我不使用原型,但总体流程是。

  • 初始化您的地图
  • 使用ajax查询某些json数据(即具有lat / long的位置)
  • rails reponds_to do | f | f.json {render:json => some_hash}结束
  • 在你的ajax回调中(回到javascript中),遍历json数据并适当地向你的地图添加点数。 (或做任何你喜欢的事)