Я пытаюсь сделать JSON, который выглядит примерно так:Предотвращение RABL (с Rails) авто-singularizing псевдонимами
elements: {
nodes: [
{ data: { id: 'j', title: 'Jerry' } },
{ data: { id: 'e', title: 'Elaine' } },
{ data: { id: 'k', title: 'Kramer' } },
{ data: { id: 'g', title: 'George' } }
],
edges: [
{ data: { source: 'j', target: 'e' } },
{ data: { source: 'j', target: 'k' } },
{ data: { source: 'k', target: 'j' } },
]
}
С RABL. Мой код выглядит следующим образом:
object @work => :elements
child :nodes, :root => :nodes, :object_root => "data".pluralize do
attributes :id, :title
end
child :links, :root => :edges, :object_root => :data do
attribute :parent_id => :source
attribute :child_id => :target
end
Но мой JSON еще читает
{"elements":
{"nodes":[
{"datum":{"id":j,"title":"Jerry"}},
{"datum":{"id":k,"title":"Kramer"}},
и т.д ...
Как вы можете видеть, я пробовал функцию .pluralize
, даже .pluralize(2)
попробовать чтобы заставить его признать его множественным, но безрезультатно. Кажется, что RABL, вероятно, звонит .singularize
где-то по линии, но я не уверен, как обойти его.
Мне нужно, чтобы он читал «данные» вместо «datum» из-за библиотеки, которую я использую (cytoscape.js), что требует форматирования JSON определенным образом. Спасибо за любую помощь!