Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rails:在javascript中尝试使用ruby数组时,使用“null”代替包含3个元素的数组_Javascript_Ruby On Rails - Fatal编程技术网

Rails:在javascript中尝试使用ruby数组时,使用“null”代替包含3个元素的数组

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 %>

我有以下代码片段:

在我的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 %>];
  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 %>];