Ruby on rails 将javascript变量附加到erb标记中
无法在资源路径中动态添加映像名称 my.js.erb文件Ruby on rails 将javascript变量附加到erb标记中,ruby-on-rails,Ruby On Rails,无法在资源路径中动态添加映像名称 my.js.erb文件 var path = element.image_path var imgObj = new Image(); imgObj.src = "<%= asset_path("+ path +") %>"; // text var comes in loop(image1.png, image2.png) var path=element.image\u路径 var imgObj=新图像(); imgObj.src=“”;//文
var path = element.image_path
var imgObj = new Image();
imgObj.src = "<%= asset_path("+ path +") %>"; // text var comes in loop(image1.png, image2.png)
var path=element.image\u路径
var imgObj=新图像();
imgObj.src=“”;//文本变量进入循环(image1.png、image2.png)
编辑:
我在问如何使用动态图像路径来实现这一点
您可以使用以下方法为控制器中的图像渲染
资源路径
:
ActionController::Base.helpers.image_tag("YOUR_IMAGE")
将其赋给实例变量,然后在视图中按照您的意愿应用它。这个
imgObj.src=“”代码>不,你不能那样做asset_path
(以及所有其他“ERB标记”)在服务器上运行,远远早于此javascript代码有机会运行。但是,如果您找到一种方法将此映像路径也放在服务器上……您的问题是什么?在我的例子中,它必须动态添加到javascriptStore中,并将其作为数据属性存储在元素上,然后通过javascript@Sam:“它必须在javascript中动态添加”-若您的图像数量有限(且足够小),您可以在页面呈现时预先计算所有资源路径,然后只需选择其中一个。如果图像集很大/不受限制,则可以避免对它们进行指纹识别(从而避免使用asset\u path
),或者发送ajax请求以获取路径(因为asset\u path
仅在服务器上运行)