抱歉,我是Ruby on Rails的新手。我对总体情况感到非常困惑,因此将不胜感激。
在我的application.html.haml中,我称为= yield,它的输出来自rank.html.haml。现在,后者可以访问rails变量@featured_image。
我要做的是在页面加载时获取此rails变量@featured_image,以便在此之后可以预加载该图像和具有ID的图像。
但是我的application.html.haml中的window.onload = function()无法访问@featured_image ...
我该怎么做呢??
谢谢!!
最佳答案
正如Chris Heald指出的那样,@featured_image变量是控制器上的实例变量,您可以在视图中访问它。要从javascript中使用它,您基本上要做的就是将其写到您的布局中,或部分地写在这样的脚本块中的某个位置(这是erb,而不是haml):
<script>
var featured_image="<%= @featured_image %>";
</script>
显然,您需要在@featured_image中添加对nil值的检查,并以适合您的应用的方式处理它,否则请确保始终将其设置为某些值。克里斯的建议是使用助手,这也是一个很好的建议,但我不确定该助手对于新手需要做什么。