Cuando uso accept_nested_attributes_for, en lugar de tener que pasar "child_attributes", me gustaría pasar "child". Estoy bastante seguro de que si pongo mucha lógica en mi controlador para crear los registros y los niños, podría lograr esto. Sin embargo, en un esfuerzo por mantener mis controladores limpios y la lógica donde debería estar, el modelo en este caso, me gustaría saber cómo cambiar los rieles 3 para usar esta sintaxis al hacer un POST o PUT.Rails 3 ¿Cómo puedo permitir que los atributos anidados se pasen sin la designación _attributes
{
"name": "test",
"child_attributes": [
{
"id": 1,
"name": "test_child_update"
},
{
"name": "test_child_create"
}
}
En lugar
{
"name": "test",
"child": [
{
"id": 1,
"name": "test_child_update"
},
{
"name": "test_child_create"
}
}
¿Puedo preguntar por qué quiere cambiar esto? – Robin
Hay una razón para esta convención, ya que el atributo 'child' en realidad se refiere a la colección de objetos' Child', no a los atributos de los objetos 'Child'. El atributo 'child_attributes' se usa para aclarar la intención. – PinnyM
Voy a vadear aquí. El tipo de objeto que se pasa debe ser suficiente para determinar el intento. Además, dado que no hay clases en JSON, el uso de '_attributes' no borra nada. – user1158559