1

吉斯特:

<script type="text/javascript">我想访问一个从 Ruby 到 Javascript 的静态(Rails 将页面交付给客户端后永远不会改变)字符串。

更多细节(又名:为什么我想这样做。)

我使用一个名为 Juggernaut 的推送服务器,它必须连接到适当的“通道”,由控制器中的变量确定。“监听”主宰服务器的主宰语法是:

j.subscribe("channel", function(data) { })

我希望它是:

j.subscribe(<%= @myChannel %>, function(data) { })
4

2 回答 2

4

您很可能@myChannel不包含"

你应该使用:

j.subscribe("<%= @myChannel %>", function(data) { })
于 2011-09-22T02:05:08.607 回答
2

一个不同的想法是不要将你的 ruby​​ 代码嵌入到你的 .js 文件中,而是嵌入到视图本身中。

因此,在您看来,要么设置一个 javascript 变量,要么channel将“通道”添加为某个 html 元素的属性,以您的情况更自然的为准。然后在您的应用程序 javascript 中,一旦文档准备好,您就可以访问该变量。

这有一个附带好处,如果/当通道更改时,客户端不需要重新下载您的 javascript,而是可以继续从缓存中使用它,并且 rails 不需要每次都渲染 .js。

于 2011-09-22T03:13:38.253 回答