将实例变量传递给 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 文件的调用。
在我的搜索控制器中,我有一个实例变量,@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 文件的调用。