将实例变量传递给 js Rails

Pass instance variable to js Rails

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

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

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

什么给了?

Rails 资产是预编译的,因此它们无法访问来自控制器的实例变量。使用 script 标签将 Javascript 直接嵌入到您的视图中,并像您一样访问 @results。您还可以发起对外部 Javascript 文件的调用。