Rails: частично кэширует вложенную форму

У меня есть сложная вложенная форма, загрузка которой занимает несколько секунд, когда она не кэшируется. Скрытые поля id выглядят так:

<input type="hidden" value="1" name="user[properties_attributes][0][id]">
<input type="hidden" value="2" name="user[properties_attributes][1][id]">
<input type="hidden" value="3" name="user[properties_attributes][2][id]">
<input type="hidden" value="4" name="user[properties_attributes][3][id]">

Теперь я хочу кэшировать части формы и изменять только те части, которые обновляются. Проблема в том, что fields_for не распознает кэшированные части и запускает счетчик с 0:

<cached>
  <input type="hidden" value="1" name="user[properties_attributes][0][id]">
  <input type="hidden" value="2" name="user[properties_attributes][1][id]">
</cached>
<updated>
  <input type="hidden" value="3" name="user[properties_attributes][0][id]">
</updated>
<cached>
  <input type="hidden" value="4" name="user[properties_attributes][3][id]">
</cached>

Таким образом, второе поле [0][id] имеет приоритет над первым.

Есть ли способ использовать случайные строки, а не последовательные целые числа, как это?

<input type="hidden" value="1" name="user[properties_attributes][ab2ca3ga][id]">
<input type="hidden" value="2" name="user[properties_attributes][d7e555wf][id]">
<input type="hidden" value="3" name="user[properties_attributes][g18fhhd1][id]">
<input type="hidden" value="4" name="user[properties_attributes][jl8h18dh][id]">

Тогда кэшированные поля могут оставаться без изменений. Спасибо за любые идеи, как решить эту проблему!

1 ответ

Решение

В конце концов я решил это с помощью JavaScript.

Другие вопросы по тегам