Rails: 部分缓存嵌套表单
Rails: Partly caching a nested form
我有一个复杂的嵌套表单,在未缓存时需要几秒钟才能加载。隐藏的 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]">
然后缓存的字段可以保持不变而不受任何干扰。
感谢您提供解决此问题的任何想法!
我最终用JavaScript解决了它。
我有一个复杂的嵌套表单,在未缓存时需要几秒钟才能加载。隐藏的 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]">
然后缓存的字段可以保持不变而不受任何干扰。 感谢您提供解决此问题的任何想法!
我最终用JavaScript解决了它。