Podczas korzystania z accepts_nested_attributes_for, zamiast przekazywania "atrybutów podrzędnych", chciałbym przekazać "dziecko". Jestem pewien, że jeśli włożyłbym dużo logiki do kontrolera, aby stworzyć rekordy i dzieci, mógłbym to zrobić. Jednakże, starając się utrzymać kontrolery w czystości i logice, gdzie powinien być, w tym przypadku model, chciałbym wiedzieć, jak przełączać szyny 3 wokół, aby użyć tej składni podczas wykonywania testu POST lub PUT.Szyny 3 W jaki sposób można zezwolić na przekazywanie zagnieżdżonych atrybutów bez oznaczenia _attributes
{
"name": "test",
"child_attributes": [
{
"id": 1,
"name": "test_child_update"
},
{
"name": "test_child_create"
}
}
Raczej
{
"name": "test",
"child": [
{
"id": 1,
"name": "test_child_update"
},
{
"name": "test_child_create"
}
}
Czy mogę zapytać, dlaczego chcesz to zmienić? – Robin
Istnieje powód tej konwencji, ponieważ atrybut "child" w rzeczywistości odnosi się do kolekcji obiektów "Child", a nie atrybutów obiektów "Child". Atrybut "child_attributes' służy do wyjaśnienia zamiaru. – PinnyM
Mam zamiar brnąć tutaj. Typ obiektu, który jest przekazywany, powinien wystarczyć do określenia zamiaru. Ponadto, ponieważ nie ma klas w JSON, użycie '_attributes' w rzeczywistości niczego nie usuwa. – user1158559