将实例变量传递给js Rails

时间:2015-01-15 23:28:29

标签: javascript jquery ruby-on-rails asset-pipeline

在我的搜索控制器中,我有一个实例变量@results。我将其设置为返回虚拟结果'foo'

在我的search.html.erb视图中...我设置了window.results = <%= raw @results.to_json %>

在我的search.js资产文件的顶部,我console.log(results)并获得undefined,但是当我在页面加载后进入devtools时,结果将填充'foo'。 console.log语句也包含在jquery ready函数中。

是什么给出了?

1 个答案:

答案 0 :(得分:4)

Rails资产已预编译,因此无法访问来自控制器的实例变量。使用script标记将Javascript直接嵌入到您的视图中,并像访问@results一样访问{{1}}。您也可以启动对外部Javascript文件的调用。