【问题标题】:How to stop CarrierWave from returning full avatar photo object when querying user record?如何在查询用户记录时阻止 CarrierWave 返回完整的头像照片对象?
【发布时间】:2014-07-30 22:26:36
【问题描述】:

我有一个带有头像字段的用户模型,它使用 CarrierWave 来管理文件。当我查询用户表(例如 User.where(...))并通过 JSON 将其发送到管道时,头像字段变为如下所示:

[{"头像"=>{"url"=>"https://xyz.s3.amazonaws.com/uploads/user/avatar/avatar.jpg", :thumb=>{"url"=>"https://xyz.amazonaws.com/uploads/user/avatar/thumb_avatar.jpg"}, :full=>{"url"=>" https://xyz.amazonaws.com/uploads/user/avatar/full_avatar.jpg"}}}]

但是当我查看数据库时,我看到的只是头像字段中的 avatar.jpg。似乎 CarrierWave 正在附加所有这些额外信息。

我怎样才能只获取数据库中的 avatar.jpg 而不是所有其他内容?我的“hack”方法是这样做 User.where(...).select("avatar as avatar_file") 但我更愿意找到一个更清洁的解决方案。

谢谢! 亚伦

【问题讨论】:

    标签: ruby-on-rails carrierwave


    【解决方案1】:

    我认为您可以使用avatar_identifier 方法(每个用户实例都可以访问)检索头像文件名并将其包含在您的json中。

    来源:https://github.com/carrierwaveuploader/carrierwave/blob/88352b4de06d68c4994e7ad22b50a6863380931f/lib/carrierwave/mount.rb

    【讨论】:

    • 谢谢,当我访问这样的对象时有效:User.find(143).avatar_identifier 但当我拉取这样的完整记录集时无效:users = User.where(... ).select(:avatar_identifier)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-08
    • 2015-07-30
    • 1970-01-01
    相关资源
    最近更新 更多