У меня есть ассоциация 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