我的相机控制器的@cameras
方法中有一个实例对象为map
,并且因为我的原因而从中得到的值很少
+ @cameras = load_user_cameras(true, false)
+ @map_data = []
+ @cameras.each do |camera|
+ @map_data[@map_data.length] = [
+ camera["name"],
+ camera["id"],
+ camera["owner"],
+ camera["is_online"],
+ camera["is_public"],
+ camera["vendor_id"],
+ camera["location"],
+ camera["vendor_name"],
+ thumbnail_url(camera)
+ ]
+ end
我想在我的map.html.erb
window.Evercam.Camera = {
id: '<%= @map_data['id'] %>',
name:'<%= @map_data['name'] %>',
is_online: <%= @map_data['is_online'] %>,
vendor_id: '<%= @map_data['vendor_id'] %>',
}
但是对于多个对象不仅单Evercam.Camera
而且Evercam.Cameras
因为@map_data
中会有多个记录所以我想创建一个全局对象Evercam.Cameras
来我可以完全分配整个对象@map_data
?是否有可能..任何帮助都会感激不尽。
答案 0 :(得分:0)
你正在使它变得比它需要的更难,在Rails中你可以使用to_json
http://apidock.com/rails/Hash/to_json。
在控制器中使用map
它将对任何可枚举的东西起作用,并且正在做你正在做的同样的事情但更快更可靠。 https://ruby-doc.org/core-2.3.3/Enumerable.html#method-i-map
@cameras = load_user_cameras(true, false)
@map_data = @cameras.map do |camaras|
### This will be turned into json, so make sure the key is what you need later when you retrieve it in Javascript.
id: camera['id'],
name: camera['name']
### AND SO ON ...
end
在erb中,to_json
方法将获取您的枚举并将其转换为json对象。
window.Evercam.Cameras = <%= @map_data.to_json %>;