2013-10-24 96 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

相關問題