Сопоставить ассоциацию activerecord с пользовательским форматом json - PullRequest
0 голосов
/ 09 мая 2019

У меня есть ассоциация activerecord

pry(#<Admin::Contents::ContentElementsController>)> content_element.pictures
=> [#<Picture:0x007fb55cb15530
  id: 101,
  name: nil,
  image: "IMG_4833.jpg",
  imageable_id: 95,
  imageable_type: "Content::Element",
  created_at: Thu, 09 May 2019 11:49:13 CEST +02:00,
  updated_at: Thu, 09 May 2019 11:49:13 CEST +02:00,
  caption: nil,
  size: [360, 280],
  position: 1,
  exif: "{\"exif_version\":\"0210\",\"flash_pix_version\":\"0100\",\"color_space\":65535}">,
 #<Picture:0x007fb5625689d8
  id: 105,
  name: nil,
  image: "IMG_4833.jpg",
  imageable_id: 95,
  imageable_type: "Content::Element",
  created_at: Thu, 09 May 2019 12:06:02 CEST +02:00,
  updated_at: Thu, 09 May 2019 12:06:02 CEST +02:00,
  caption: nil,
  size: [360, 280],
  position: 5,
  exif: "{\"exif_version\":\"0210\",\"flash_pix_version\":\"0100\",\"color_space\":65535}">]

Они загружены с помощью Carrierwave, поэтому для вызова URL мне нужно

content_element.pictures.first.image.path
=> "/Users/xxxx/Projects/test/public/system/staging-uploads/picture/image/101/IMG_4833.jpg"

Мой плагин для загрузки javascript нуждается в ответе json, подобном этому

"file-1":{"url":"/tmp/images/870a7a0bf0fbf4304e89939afdee37ab.jpg","id":"870a7a0bf0fbf4304e89939afdee37ab"},
"file-2":{"url":"/tmp/images/4e819437e9f79889d018179c19a7d833.jpg","id":"4e819437e9f79889d018179c19a7d833"},
"file-3":{"url":"/tmp/images/a3610b99e9f8dcd578572fb8b2285b2f.jpg","id":"a3610b99e9f8dcd578572fb8b2285b2f"}}

Я не могу найти способ сопоставить свою ассоциацию (с индексом), чтобы создать хеш-код, где каждый хэш имеет имя, такое как picture-index, и значение, где id - это идентификатор, а URL - это carrierwave url

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...