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