假设我有一个包含许多字段的复杂嵌套表单。
我想以 ajax 的方式一个接一个地编辑它的字段,这样每次我看到表单时 - 它都是“显示”样式(没有更改信息的字段),但可以切换任何特定字段或字段组使用它自己的“保存”或“更新”按钮来“编辑”模式。
解决这种问题,我最终有两种方法:
扩展使用Ryan Bates 的 complex-form-examples。
这种方式的缺点是每个字段(或字段组)都需要自己的代码(即javascript:'insert_fields'),它会呈现相应的'edit'样式表单,因此导致页面被javascripts淹没。第二 - 是通过 ajax 通过特殊控制器操作(即 get_partial)加载相应编辑部分的统一过程,它通过“编辑”形式“渲染:更新”给定字段的区域。
对于给定的字段或字段组,我有“编辑”和“显示”的部分内容。当我需要将该字段切换到编辑模式时,我link_to ...,'/.../get_partial?partial=foo',:remote => true
通过 ajax 发送带有必要参数的请求(),并且一些控制器#action 通过 javascript 呈现该部分。
我认为第二种方法更好,但我不知道如何优化它最好。
这个问题有没有更优雅的解决方案?