Estoy usando la gema RABL para representar datos de usuario JSON para los usuarios de comentarios que son hijos de anotaciones que son hijos de imágenes. Me gustaría hacer algo similar a:Rails 3.1 anidamiento profundo con RABL
object @image
node :annotations do
@image.annotations.map { |a| {
:id => a.id,
:x1 => a.x1,
:x2 => a.x2,
:y1 => a.y1,
:y2 => a.y2,
node :comments do
@image.annotations.comments.map { |c| {
:body => c.body,
:user_id => c.user_id,
:name => User.find(c.user_id).name,
:user_icon => user_icon(User.find(c.user_id), 'square', 30)
}}
end
}}
end
Sé que esto no es válido en RABL, también probé utilización de niños en lugar de nodo, pero no podía acceder a los datos de usuario de esa manera. ¿Cómo debo hacer esto y cuál es la sintaxis adecuada para que esto suceda?
+1. esta forma de crear un hash en un bloque guarda un par de líneas pero es algo confuso (y unidiomático). Estaba a punto de actualizarlo, pero bueno, supongo que no es tan malo después de todo. – tokland