2012-09-25 42 views
0

我想知道如何將另一個鍵值對添加到由DataMappers .to_json方法生成的JSON的末尾。當我嘗試撥打to_json(:methods => [:total_pages])時,它忽略了所有方法。添加到datamapper的結尾json

我想它生產的東西是這樣的:

{ 
    'data':  [rows go here], 
    'total_pages': X 
} 

有沒有辦法只是做方法內聯還是什麼?

謝謝!

回答

2

你可以做到這一點簡單。

{ 
    data: YourModel.your_whatever, 
    total_pages: YourModel.total_pages 
}.to_json 

DM系列化to_json試圖調用選項提供它稱自己爲同一對象的方法(在你的情況 - 可能結果的集合,是沒有定義的方法TOTAL_PAGES)

+0

這正是我想要的!謝謝! –

2

您可以編輯JSON字符串,但據我所知,沒有簡單的方法可以將任意值注入到JSON中。

調用your_dm_resource.to_json(:methods => [:total_pages])是正確的方式做你想做的,檢查你的some_dm_resource.total_pages方法正在你期望的方式工作。

如果您使用的是現代的紅寶石,你可以刪除哈希火箭:

your_dm_resource.to_json(methods: [:total_pages]) 
+0

感謝丹尼爾。我一直在討論total_pages方法,當我把它作爲一個類方法時(它可能因爲關係而有點適合),我無法讓它工作。你知道是否可以在to_json參數中引用本地函數,還是必須是符號? –