레일즈를 사용하여 복잡한 중첩 된 속성 집합을 기반으로 자식 객체를 자동으로 생성합니다. 따라서 매우 특별한 방법으로 매개 변수를 중첩해야합니다. 분명히 나는 그들이 JS를 가지고 싶어하지만 내가 구조를 만들 수 있다는 것을 알았지 만, 폼의 순서가 자동으로 구조를 돕고 싶다. 컨텍스트의 경우 2 개의 열이 있으며 2 <td>
으로 표시됩니다. 각 열은 새 레코드를 만들거나 기존 레코드를 편집 할 수 있습니다. 물론 기존 레코드가 수정 될 때 레코드의 ID가 전달되어야합니다. 다음매개 변수를 만들 때 HTML이 따르는 규칙은 무엇입니까?
렌더링 된 HTML은 : 상기 제 <td>
새로운 레코드를 생성하기 위해 파라미터를 제공하는 동안이 경우
<td width="50%" style="padding-right:3%" class="logistic-details" data-type="logistics" data-typelogistics="delivery" data-instructions="test instructions" data-id="1" data-amount="20">
<span class="area-to-inject-amount-inputs" data-object="type_logistics" data-type="logistics" data-typelogistics="delivery">
<input class="labeler-response" name="type_logistics_attributes[][id]" type="hidden" value="1">
<input class="labeler-response" name="type_logistics_attributes[][instructions]" type="text" value="test instructions">
</span>
</td>
<td width="50%" style="padding-right:3%" class="logistic-details" data-type="logistics" data-typelogistics="pickup" data-instructions="" data-id="" data-amount="0">
<span class="area-to-inject-amount-inputs" data-object="type_logistics" data-type="logistics" data-typelogistics="pickup" data-actioned="charged">
<input type="hidden" name="type_logistics_attributes[][type_of_logistics]" value="pickup">
<input class="injected-amount-input" type="number" min="0" max="" placeholder="Amount" name="type_logistics_attributes[][charged_amounts_attributes][][amount]" value="20">
<span class="area-to-inject-type-of-amount">
<input type="hidden" name="type_logistics_attributes[][charged_amounts_attributes][][type_of_amount]" value="logistics">
</span>
<input class="labeler-response" name="type_logistics_attributes[][instructions]" type="text" placeholder="Enter address and instructions">
</span>
</td>
는, 제
<td>
는, (1)의 ID를 갖는 기존의 기록을 변경한다. 새 레코드가 생성되면 자식
charged_amounts
도 생성됩니다. 따라서, 이러한 매개 변수 내가 기대됩니다
"type_logistics_attributes"=>[
{"id"=>"1", "instructions"=>"test instructions"},
{"type_of_logistics"=>"pickup", "charged_amounts_attributes"=>[{"amount"=>"40", "type_of_amount"=>"logistics"}], "instructions" => "123 Fake street"}
]
대신에, 나는 아래에 무엇입니까 :
"type_logistics_attributes"=>[
{"id"=>"1", "type_of_logistics"=>"pickup", "instructions"=>"test instructions", "charged_amounts_attributes"=>[{"amount"=>"40", "type_of_amount"=>"logistics"}]},
{"instructions"=>"123 Fake street"}
]
어떻게 든 <td>
경계가 작동하지 않습니다와 아이 charged_amount
속성은 어떻게 든 집중되었다 먼저 <td>
기존 레코드 수정.
감사합니다.
이 마크 업을 생성하는 데 사용중인 RoR 코드도 게시 할 수 있습니까? – Vucko
브라우저에서 제출 한 _raw POST 데이터 _를 제공해 주시겠습니까? 이를 얻는 가장 쉬운 방법은 브라우저의 개발자 도구의 네트워크 창에서하는 것입니다. – zwol