Ruby on rails 将javascript变量附加到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=“”;//文

无法在资源路径中动态添加映像名称

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=“”;//文本变量进入循环(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
仅在服务器上运行)