accepts_nested_attributes_for를 사용하는 경우 "child_attributes"를 전달하지 않고 "child"를 전달하고 싶습니다. 내 컨트롤러에 많은 논리를 넣어 레코드와 어린이를 만들면이 작업을 수행 할 수 있습니다. 그러나 컨트롤러를 깨끗하게 유지하고 로직을 유지하려면이 모델을 사용하여 POST 또는 PUT을 수행 할 때이 구문을 사용하는 레일 3을 전환하는 방법을 알고 싶습니다. 레일 3 _attributes 지정없이 중첩 된 속성을 전달하는 방법은 무엇입니까
{
"name": "test",
"child_attributes": [
{
"id": 1,
"name": "test_child_update"
},
{
"name": "test_child_create"
}
}
오히려
{
"name": "test",
"child": [
{
"id": 1,
"name": "test_child_update"
},
{
"name": "test_child_create"
}
}
왜 이것을 변경하고 싶은지 물어볼 수 있습니까? – Robin
'child' 속성은'Child' 객체의 속성을 가리키는 것이 아니라'Child' 객체의 컬렉션을 실제로 참조하기 때문에이 규칙에 대한 이유가 있습니다. 'child_attributes' 속성은 의도를 명확히하기 위해 사용됩니다. – PinnyM
나는 여기로 걸어 갈거야. 전달되는 객체의 유형은 의도를 결정하기에 충분해야합니다. 또한 JSON에는 클래스가 없기 때문에'_attributes'를 사용하여 실제로 아무것도 정리하지 않습니다. – user1158559