Rails:在javascript中尝试使用ruby数组时,使用“null”代替包含3个元素的数组
我有以下代码片段: 在我的app/assets/javascripts/application.js中Rails:在javascript中尝试使用ruby数组时,使用“null”代替包含3个元素的数组,javascript,ruby-on-rails,Javascript,Ruby On Rails,我有以下代码片段: 在我的app/assets/javascripts/application.js中 //= require jquery //= require harddisk //= require rails-ujs //= require_tree . 在我的应用程序/assets/javascripts/harddisk.js.erb中 var harddisk_locations = [<%= raw @harddisk_locations.to_json %>
//= require jquery
//= require harddisk
//= require rails-ujs
//= require_tree .
在我的应用程序/assets/javascripts/harddisk.js.erb中
var harddisk_locations = [<%= raw @harddisk_locations.to_json %>];
console.log(harddisk_locations);
但由于某些原因,在浏览器控制台的硬盘页面上
@硬盘位置为空,而不是包含3个元素的数组
为什么会这样?如何修复
如果我搬动那辆车也没用
@硬盘位置=[foo,bar,baz]
从硬盘模型到硬盘\u controller.rb您应该将它们定义为全局变量,而不是实例变量。您可以将型号代码更改为:
HD_LOCATIONS = ['foo', 'bar', 'baz']
在您的JS文件中:
var harddisk_locations = [<%= raw Harddisk::HD_LOCATIONS.to_json %>];
您可以在此处阅读有关变量类型的更多信息:尝试在视图中移动harddisk.js.erb文件,并在控制器中移动@harddisk\u位置。然后我收到一个错误:未初始化常量erb::HD\u位置我已更新了代码。请您尝试一下,如果它抛出错误,请粘贴异常堆栈?
var harddisk_locations = [<%= raw Harddisk::HD_LOCATIONS.to_json %>];