我是 .js.erb 文件的新手,我使用它们是因为我需要构造一个需要 Ruby 变量的 Javascript 字符串。
这是我的代码。
pusher.js.erb
var pusher = new Pusher(PUSHER KEY);
var myChannel = pusher.subscribe('job_channel');
$(document).ready(function() {
myChannel.bind('job_added', function(data) {
addJob(data)
});
function addJob(data) {
<% job = JSON.parse(data) %>
var new_job = "HELLO <%= job.id %>";
$('.job_list').append(new_job)
};
});
data
包含一个名为job
我转换为 JSON 的 Ruby 对象。我想将该 JSON 对象转换回 Ruby 对象并使用它的属性来构造一个 Javascript 字符串。我知道我可以简单地data["id"]
在这个例子中使用,但这只是示例代码,我需要更复杂的 Ruby 内容才能进入该字符串。
当我尝试启动服务器并加载页面时,我收到此错误:
#<#:0x007ffe07cb7e58> 的未定义局部变量或方法“数据”(在 /PATH/javascripts/pusher.js.erb 中)
app/assets/javascripts/pusher.js.erb:17:in `block in singletonclass'
app/assets/javascripts/pusher.js.erb:65530:in `instance_eval'
app/assets/javascripts/pusher.js.erb:65530:in `singletonclass'
app/assets/javascripts/pusher.js.erb:65528:in `__tilt_70364478302900'
app/views/layouts/application.html.erb:21:in `_app_views_layouts_application_html_erb___1231815935649534974_70364476328360'