Angularjs,Rails 4和Paperclip如何获取缩略图

时间:2013-10-24 00:31:43

标签: ruby-on-rails angularjs paperclip thumbnails

我最近试图将我的Rails服务器应用程序切换到Angularjs。当一切正常并且我可以从服务器获取我的json数据时,我实际上不知道如何从Paperclip获取图像。仅使用Rails,我曾经这样做过:

model.logo.url(:small)

工作正常。但是,如何使用Angularjs呢?我得到的唯一json对象看起来像这样:

[
  {
    "id":1,
    "name":"Item1",
    "logo":"/system/items/logos/000/000/002/original/wallpaper_1.jpg?1382574502",
    "logo_file_name":"wallpaper_1.jpg",
    "logo_content_type":"image/jpeg",
    "logo_file_size":578032,
    "logo_updated_at":"2013-10-24T00:28:22.000Z"
  }
]

如果我打印logo,它会加载完整的图像(1920x1200),这是不理想的,因为加载很重,而且因为我放了circle css效果,图像并没有真正缩放它看起来很丑陋。如何获取:small缩略图?

非常感谢

修改
谢谢@Muntasim,它现在有效:

def as_json(options={})
  { name: self.name, email: self.email, phone: self.phone, mobile: self.mobile, slug: self.slug, logo: self.logo.url(:small) }
end

1 个答案:

答案 0 :(得分:2)

您正在使用对象的默认json形式。在这里你需要自定义如下:

object.as_json(id: id, name: name, small_logo_url: logo.url(:small))

那应该给你:

{
"id":1,
"name":"Item1",
"small_logo_url":"your expected file url..",
}

如果您有对象集合,那么您将获得一个json对象数组