我有一个带有头像字段的用户模型,该字段使用CarrierWave来管理文件。当我查询User表(例如User.where(...))并通过JSON将其发送到管道时,avatar字段变为如下所示:
[{" avatar" => {" url" =>" https://xyz.s3.amazonaws.com/uploads/user/avatar/avatar.jpg",:thumb => {&# 34; url" =>" https://xyz.amazonaws.com/uploads/user/avatar/thumb_avatar.jpg"},:full => {" url" =>" https://xyz.amazonaws.com/uploads/user/avatar/full_avatar.jpg "}}}]
但是当我查看数据库时,我看到的只是avatar字段中的avatar.jpg。似乎CarrierWave正在附加所有这些额外信息。
我怎样才能获得数据库中的avatar.jpg而不是其他所有内容?我的" hack"方法是做这个User.where(...)。选择(" avatar as avatar_file")但我更愿意找到更清洁的解决方案。
谢谢! 亚伦
答案 0 :(得分:1)
我认为您可以使用avatar_identifier
方法检索头像文件名(可以为每个用户实例访问)并将其包含在您的json中。