如何处理JS中的ruby解释

时间:2016-02-25 10:09:48

标签: javascript ruby-on-rails

    > [-12.4,-7.81] (-7.81,-3.25]  (-3.25,1.31]   (1.31,5.87]   (5.87,10.4]     (10.4,15]     (15,19.6]   (19.6,24.1]   (24.1,28.7]   (28.7,33.3] 
       59           490          2783          6028          7561          7051          5090          1400           211            15 

我的文件名是 file.js.erb 。我希望#{current_style}和#{current_package}将进行字符串插值。但实际情况并非如此。我得到的错误是

var current_style = $('.current-style').data('style');
var current_package = this.id
$('.dp').attr('src', '<%= image_path("choose-package/#{current_style}-#{current_package}.png") %>');

所以我试图删除js变量前面的var,希望它们被假定为ruby变量。仍然没有运气。

1 个答案:

答案 0 :(得分:0)

您遇到的问题是,您尝试调用JS代码块中的Ruby变量。

虽然在image_path中使用JS et al的有效性存在另外一个问题,但直接的一点是你必须确保你的JS变量被这样阅读;不是Ruby vars ......

var current_package = this.id;
var current_style = $('.current-style').data('style');
$('.dp').attr('src', '<%= image_path("choose-package/' + current_style + '-' + current_package + '.png") %>');

以上应该解决您的路径问题。它在您的应用环境中是否有效是另一个问题