Я считаю, что интерактивность, которую обеспечивает одностраничное приложение JavaScript, позволяет довольно легко создавать сложные вложенные объекты на стороне клиента.
Например, в приложении, которое я пишу, у меня есть модели пункта назначения и источника Backbone, маршрут, который их соединяет, а затем автобус, который следует по этому маршруту. Все это вполне естественно сочетается на стороне клиента.
# Bus toJSON()
{
seats: 45,
route: {
summary: "a route summary",
origin: {
latitude: 45.654634,
longitude: 23.5355
},
destination: {
latitude: 45.654634,
longitude: 23.5355
}
}
}
Однако я обнаружил, что когда приходит время сохранить мою шину (пользователь готов сохранить все), метод rails models accepts_nested_attributes_for
делает вещи довольно уродливыми. В итоге мне приходится отправлять данные на сервер, который выглядит как
{ "bus_route_attributes_origin_attributes_latitude" => "45.654634" }
чтобы заставить ActiveRecord хорошо играть.
Как мне изменить свою серверную часть, чтобы упростить работу с JSON?