Я работаю над проектом RoR и передаю объект JSON в сценарий.В частности, список событий в календаре jquery.
Сначала я получаю необходимые события из активной записи и преобразую их в json:
@events = CalendarEvent.find(:all, :conditions => ["mentor_id = ?", current_user]).to_json(:only => [:id, :availability, :starts_at, :ends_at])
Это возвращает следующее:
[{"calendar_event":{"starts_at":"2010-08-14T17:15:00Z","id":1,"availability":true,"ends_at":"2010-08-14T17:45:00Z"}},
{"calendar_event":{"starts_at":"2010-08-15T15:45:00Z","id":2,"availability":true,"ends_at":"2010-08-15T16:15:00Z"}},
...]
Однако я сталкиваюсь с проблемами, поскольку сценарий ожидает следующий формат:
[{"starts_at":"2010-08-14T17:15:00Z","id":1,"availability":true,"ends_at":"2010-08-14T17:45:00Z"},
{"starts_at":"2010-08-15T15:45:00Z","id":2,"availability":true,"ends_at":"2010-08-15T16:15:00Z"},
...]
Сначала я подумал, что будет просто получить значения из отдельных хешей, ивозвращая массив, заполненный теми.Тем не менее, кажется, что все в массиве является одной большой строкой.Поэтому я пытался получить необходимые вещи с помощью регулярного выражения.Мой лучший выстрел был:
@json = @events.scan(/\[\{\"calendar_event\":(\{.*\})\}\]*/)
Но это возвращает что-то вроде:
[["{\"starts_at\":\"2010-08-14T17:15:00Z\",\"id\":1,\"availability\":true,\"ends_at\":\"2010-08-14T17:45:00Z\"}},{\"calendar_event\":{\"starts_at\":\"2010-08-15T15:45:00Z\",\"id\":2,\"availability\":true,\"ends_at\":\"2010-08-15T16:15:00Z\"}},..."]]
Любая помощь будет оценена.