我最近试图将我的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
答案 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对象数组