2015-12-18 2 views
1

Я хочу, чтобы создать объект JSON из объекта рубинового на виде файл какСоздать объект JSON с петлевым рубином на рельсах

:coffeescript 
files = {} 
    - @filelist.each do |f| 
    = files[f[0]] = f[1] 
    console.log(files) 

это дает мне ошибку «Неожиданная логика»

Ниже приводится массив, объявленными в контроллере

@filelist = Array.new 
@filelist.push(['ref','count']) 
@filelist.push(['input1','count']) 
@filelist.push(['input2','count']) 
+0

Ваш отступы повсюду. Первый шаг - исправить это. –

ответ

1

в вашей точки зрения, вы должны сначала преобразовать рубиновый массив JSON (вид изнутри):

var filelists = $.parseJSON(<%= @filelist.to_json %>); 

Затем создать объект JSON в виде:

var jsonObj = {}; 
    $.each(filelists, function(obj,index){ 
     jsonObj[obj[0]] = obj[1]; 
    }); 
+0

, похоже, работает, но я хочу его в файле haml. но не работал - #{@filelist.to_json} –

+0

Я не работал с файлами HAML, но, посмотрев некоторые обучающие материалы, я думаю, что в HAML вам нужно будет использовать это: '= @ filelist.to_json'. – sahil

Смежные вопросы