修改CarrierWave图像上传器的数据结构

时间:2012-11-27 08:19:14

标签: ruby-on-rails json gem carrierwave

我使用ruby gem CarrierWave来处理我的rails应用程序上的图像,这是一个移动后端API。有没有办法将图像url和thumb url直接存储在父对象上?

这是默认行为,显示在post对象的json中。注意嵌套的JSON:

{
created_at: "2012-11-17T18:24:04Z",
description: "this is the content",
id: 6,
user_id: 1,
picture: {
url: "/uploads/entry/picture/6/wtf_llama.jpeg",
  thumb: {
    url: "/uploads/entry/picture/6/thumb_wtf_llama.jpeg"
    }
  },
updated_at: "2012-11-26T08:16:43Z"
}

我想看到的内容:

{
created_at: "2012-11-17T18:24:04Z",
description: "this is the content",
id: 6,
user_id: 1,
picture_url = "/uploads/entry/picture/6/wtf_llama.jpeg",
thumb_url = "/uploads/entry/picture/6/thumb_wtf_llama.jpeg"
updated_at: "2012-11-26T08:16:43Z"
}

这可能吗?

1 个答案:

答案 0 :(得分:2)

为什么要在模型中存储这些路径?改进响应(视图或控制器),而不是持久层(模型)。我认为使用as_json最容易实现。可以添加picture_url方法来建模或合并其他条目到最终哈希。