如何在查询用户记录时阻止CarrierWave返回完整的头像照片对象?

时间:2014-06-10 08:26:41

标签: ruby-on-rails carrierwave

我有一个带有头像字段的用户模型,该字段使用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")但我更愿意找到更清洁的解决方案。

谢谢! 亚伦

1 个答案:

答案 0 :(得分:1)

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

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