2013-10-24 130 views
2

我最近试图将我的Rails服务器应用程序切换到Angularjs。当一切正常,我可以从服务器得到我的JSON数据,我实际上不知道如何从Paperclip获取图像。我只使用Rails,我曾这样做:Angularjs,Rails 4和回形针如何获得缩略图图像

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,它加载完整的图像(1920×1200),因为它是沉重的,因为我把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 

回答

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对象

+0

的数组,但你怎么做当你获取数据库中的所有图片?像Medium.all – Kaspar

+0

请看问题的编辑部分。如果你在模型中重写'as_json',并且从Model.all中渲染json,它应该可以工作 – Muntasim

相关问题