【发布时间】:2014-02-10 00:58:00
【问题描述】:
我正在使用 gon gem for rails,它允许您保存在控制器操作中定义的变量并在 JavaScript 中使用它们。当我在非 Ajax 设置中使用它时它工作正常,但是在执行 Ajax 请求时我遇到了成功使用它的问题。
问题:当 Ajax 请求在 JavaScript 中显示为“未定义”时,我在控制器操作中分配给 gon 变量的 Ruby 变量。
目标:我想在我的页面上触发一个 Ajax 请求,它: 1) 在控制器中点击一个动作,并将一个 Ruby 变量分配给一个 gon 变量。 2)然后渲染一个执行JavaScript的js.erb文件,其中一部分需要把步骤1中定义的Ruby变量,当作一个js变量来处理。
这是第 1 步中的示例操作:
def some_action
gon.my_ajax_var = {some: 'info'}
end
这是它呈现的示例 js.erb 文件:
/some_action.js.erb
console.log('gon.my_ajax_var equals ' + gon.my_ajax_var) //this doesn't work! comes out as 'undefined' when I expected {some: 'info'}
关于如何解决这个问题有什么想法吗?我查看了 gon.watch 页面,但我很困惑这是否与我遇到的这个问题有关,以及如何实施正确的解决方案。此外,如果有更好的方法可以做到这一点而无需 gon,我也愿意接受。
谢谢!
【问题讨论】:
标签: javascript ruby-on-rails ajax