我想知道有沒有人可以幫忙。我試圖將我們的舊版Rails Model#to_json移植到我們的API中,以便從更長遠的角度來簡化版本管理。由於Rabl和Will Paginate,我在第一個障礙中掙扎。Rabl/Will Paginate設置根子的名字
我們目前覆蓋WillPaginate ::收藏#as_json
module WillPaginate
class Collection
alias :as_json_without_paginate :as_json
def as_json(options = {})
# RABL seemingly passing JSON::Ext::Generator::State into as_json
unless options.is_a?(Hash)
options = {}
end
json = {
:page => current_page
:per_page => per_page,
:total_entries => total_entries,
:entries => as_json_without_paginate(options)
}
end
end
end
所以@ collection.to_json將返回類似
{
"total_entries": 1,
"page": 1,
"entries": [
{
"follow": {
"id": 1,
"name": "TEST"
}
}
],
"per_page": 10
}
然而,當我嘗試做Rabl的
node(:page) {|m| @follows.current_page }
node(:per_page) {|m| @follows.per_page }
node(:total_entries) {|m| @follows.total_entries}
child(@follows => :entries) do
# extends 'follows/show'
attributes :id, :name
end
以下
孩子的名字自動設置爲'entry',我想將它設置爲'follow'來與我們目前的API保持一致,但沒有任何運氣。
{
"total_entries": 1,
"page": 1,
"entries": [
{
"entry": {
"id": 1,
"name": "TEST"
}
}
],
"per_page": 10
}
任何人都可以給我任何指針。我一直試圖追溯源代碼,似乎總是隱含着子對象名稱的名稱。