serialization - serializable_hash 中的载波双键

标签 serialization rails-activerecord carrierwave jsonserializer

我有一个用户模型,它为一个名为 profile_img 的字段安装了一个载波 uploader 。代码如下:

class User < ActiveRecord::Base
    mount_uploader :profile_img, ProfileUploader
end

profile_img 字段的输出是这样的:

"profile_img": {
            "url": "https://halo-img-dev.s3.amazonaws.com/uploads/user/profile_img/1000/cola_iOS2_512_dribbble2.png",
            "thumb": {
                "url": "https://halo-img-dev.s3.amazonaws.com/uploads/user/profile_img/1000/thumb_cola_iOS2_512_dribbble2.png"
            },
            "medium": {
                "url": "https://halo-img-dev.s3.amazonaws.com/uploads/user/profile_img/1000/medium_cola_iOS2_512_dribbble2.png"
            }
        }

当我尝试通过简单地调用 super 来自定义序列化哈希时,

def serializable_hash(options = {})
    super(options)
end

profile_image 字段键重复

"profile_img": {
        "profile_img": {  #### duplicate here
            "url": "https://halo-img-dev.s3.amazonaws.com/uploads/user/profile_img/1000/cola_iOS2_512_dribbble2.png",
            "thumb": {
                "url": "https://halo-img-dev.s3.amazonaws.com/uploads/user/profile_img/1000/thumb_cola_iOS2_512_dribbble2.png"
            },
            "medium": {
                "url": "https://halo-img-dev.s3.amazonaws.com/uploads/user/profile_img/1000/medium_cola_iOS2_512_dribbble2.png"
            }
        }
    },

我怀疑这个问题源于载波序列化方法,但找不到解决方案。

有什么线索吗?

最佳答案

解决方案:

  1. jBuilder

    json.profile_img @user.profile_img.serializable_hash
    
  2. ActiveModelSerializer

    # attributes
    def profile_img
      object.profile_img.serializable_hash
    end
    

关于serialization - serializable_hash 中的载波双键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27481918/

相关文章:

ruby-on-rails - 我如何将 Rails 模型指向 json 文件而不是创建表

ruby-on-rails - Rails4 : How do I display and edit uploaded file using carrierwave?

java - 使用 Jackson,当 ebean 对象是另一个对象的一部分时,如何仅序列化它的某些属性

c# - 将 JSON 字符串反序列化为 .NET 对象时反射太慢

android - 将序列化的接口(interface)对象从 Activity 解析为 fragment

serialization - 序列化/反序列化System.Uri

ruby-on-rails - 使用 :if 验证

ruby-on-rails - 事件记录 : efficiently calculating sums

ruby-on-rails - CarrierWave如何在给定的URL下存储文件

ruby-on-rails - 在Rails应用程序中将CarrierWave与Amazon Elastic Transcoder一起使用