目前,一旦满足某些条件,我就有一些QueuedImages
变成GalleryImages
。
@image = GalleryImage.new(image_params.except(:tags))
@image.user = current_user
@queued = QueuedImage.new(user: current_user)
@queued.image = @image
在保存此方法之前,请将图像转换为JSON:
def image_to_json
self.image_data = @image.to_json(include: :plain_images)
end
我正在尝试像这样更新序列化的哈希/ JSON:
def update
@queued = QueuedImage.find(params[:id])
hash_as_string = @queued.image_data
i_data = JSON.parse(hash_as_string.gsub('=>', ':'))
i_data["title"] = params["title"]
i_data["description"] = params["description"]
i_data["folder_id"] = params["folder_id"]
i_data["nsfw"] = params["nsfw"]
i_data["tags"] = params["tags"]
@queued.image_data = i_data
if @queued.save
render json: @queued, scope: current_user
else
render json: @queued.errors.as_json(full_messages: true), scope: current_user, status: :unprocessable_entity
end
end
哪个抛出了我的解析错误,我在做什么错了?
如何正确更新序列化的字符串?
问题是,当它从QueuedImage
转换为GalleryImage
时,另一种方法将获取该数据并对其求值并创建新的GalleryImage
,因此它必须位于确切的格式,即使我将其另存为字符串,我相信在update方法中执行的操作是错误的。