Как обновить блоб ActiveStorage в рельсах? - PullRequest
0 голосов
/ 27 января 2020

У меня есть файл, прикрепленный к переменной (@template) со следующим блобом:

#<ActiveStorage::Blob id: 581175, key: "0gm1oho37jwqlg4vdhhhabmhmbbs", filename: "open-uri20200122-24977-1gwql8e", content_type: "image/png", metadata: {"identified"=>true}, byte_size: 1651505, checksum: "U+Cj40eyRxQUBJWD1k6MBg==", created_at: "2020-01-22 17:45:49">

Мне нужно обновить метаданные с {"identified"=>true} до {"identified"=>true, "height"=> "300px", "width"=>"200px"}

Как мне это сделать?

Ответы [ 2 ]

0 голосов
/ 28 января 2020

Просто выполните

ActiveStorage::Blob.find(581175).update(metadata: {"identified"=>true, "height"=> "300px", "width"=>"200px"})

Вот и все.

0 голосов
/ 28 января 2020

Я не рекомендую вам делать это

Но если это то, что вы хотите

your_object_with_active_storage = YourModel.find x
metadata = {"identified"=>true, "height"=> "300px", "width"=>"200px"}
blob_id = your_object_with_active_storage.attribute_attached.blob.id
ActiveRecord::Base.connection.exec_query %{
  UPDATE 
    "active_storage_blobs"
  SET
    "metadata" = '#{metadata.to_json}'
  WHERE
    "id" = #{blob_id}
}
...