2

我最近试图将我的 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"
  }
]

如果我 print logo,它会加载完整的图像(1920x1200),这并不理想,因为加载起来很重,而且由于我放置了circlecss 效果,图像并没有真正缩放,而且看起来很丑。如何获取: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
4

1 回答 1

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

于 2013-10-24T00:50:48.197 回答