Интересно, может ли кто-нибудь помочь. Я пытаюсь перенести нашу старую Rails Model # to_json для нашего API, чтобы упростить управление версиями в долгосрочной перспективе. Я борюсь за первое препятствие из-за Рабла и Уилла Пагината.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' to быть в соответствии с нашим текущим API, но не повезло.
{
"total_entries": 1,
"page": 1,
"entries": [
{
"entry": {
"id": 1,
"name": "TEST"
}
}
],
"per_page": 10
}
Может ли кто-нибудь дать мне какие-либо указатели. Я пытался отслеживать исходный код, и кажется, что имя корневого имени объекта для ребенка всегда подразумевается.