我想給filename
JavaScript變量注入到我的Ruby代碼是這樣的:如何使用HAML將JavaScript變量注入Ruby代碼?
"#{ajax_download_report_url(" + filename+ ")}"
這是一個基本的路徑URL,但我需要通過這個變量HAML,因爲我從這個Ajax請求得到它:
:javascript
var updaterId = setInterval(function() {
$.ajax({
url: #{admin_reports_url.to_json},
dataType: "json",
type: "GET",
data: {job_id: "#{job_id}"},
success: function(response){
var filename = response.file;
switch(status) {
case 'failed':
$('.loader').hide();
clearInterval(updaterId);
alert(message);
break;
case 'completed':
$('.loader').hide();
clearInterval(updaterId);
location.href = "#{ajax_download_report_admin_reports_url(" + filename+ ")}";
break;
}
}
})}, 1000);
現在我有一個錯誤:
ActionController::RoutingError - No route matches
{:controller=>"admin/reports", :action=>"ajax_download_report", :file=>" + filename+ "}
這意味着HAML不能正常evalute此代碼。
它看起來並不像你試圖注入一個JavaScript變量爲Ruby代碼,這是行不通的。相反,它看起來像你想要在一些JavaScript代碼中插入一個Ruby變量。 –
@錫文,var文件名向上。 – 7stud
是的,那些Ruby字符串是通過'#{...}'內部的字符串插值注入到JavaScript代碼中的。 –