Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用React JS和Rails处理添加字段、编辑字段和删除字段_Ruby On Rails_Reactjs_Backend_Methodology - Fatal编程技术网

Ruby on rails 使用React JS和Rails处理添加字段、编辑字段和删除字段

Ruby on rails 使用React JS和Rails处理添加字段、编辑字段和删除字段,ruby-on-rails,reactjs,backend,methodology,Ruby On Rails,Reactjs,Backend,Methodology,我有一个React应用程序用于处理前端,Rails用于后端。所以我有一个表单管理器,其中可以添加一个字段,以前添加的字段可以编辑或删除。完成所有更改后,用户可以单击Save按钮将数据发送到后端 发送数据时,哪种方法更有效 组件将跟踪新添加的字段、已删除的字段和已修改的字段,并将它们全部发送到服务器,让服务器处理它们 发送已修改和新添加的字段(不是已删除的字段)。现有字段将有与其关联的ID,这会告诉后端应用程序它已经存在。此方法要求服务器对以前存在的字段和当前提交的字段执行diff方法,以删除删

我有一个React应用程序用于处理前端,Rails用于后端。所以我有一个表单管理器,其中可以添加一个字段,以前添加的字段可以编辑或删除。完成所有更改后,用户可以单击Save按钮将数据发送到后端

发送数据时,哪种方法更有效

  • 组件将跟踪新添加的字段、已删除的字段和已修改的字段,并将它们全部发送到服务器,让服务器处理它们
  • 发送已修改和新添加的字段(不是已删除的字段)。现有字段将有与其关联的
    ID
    ,这会告诉后端应用程序它已经存在。此方法要求服务器对以前存在的字段和当前提交的字段执行diff方法,以删除删除的项目
或者有更好的选择吗?

以下是我的想法:

因此,我会推荐您的第一种方法,因为再次发送整个内容似乎不正确,会给服务器带来巨大的负载

但是,正如您所说的,使用一个单独的对象数组,其中包含新的/删除的/修改的其他对象数组,并使用POST调用将其发送到服务器,让它处理它

但要确保它不是单独的组件,而是一个处理整个数据的redux模块

完成所有更改后,用户可以单击Save按钮将数据发送到后端

^该声明是上述建议方法的原因

否则,我只需将每个表单字段视为一个单独的数据条目,并分别使用POST/REMOVE/PUT调用API来保存/删除/编辑,这会更加方便。接吻原则!(谷歌!)

PS:如果使用第一种方法,请确保将用户在大表单中键入的数据保存在本地某个位置,这样即使他意外切换页面,也可以轻松检索所有丢失的数据