Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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/9/visual-studio/7.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
使用标签的RubyonRails_Ruby_Database_Ruby On Rails 3_Tabs_Multi Step - Fatal编程技术网

使用标签的RubyonRails

使用标签的RubyonRails,ruby,database,ruby-on-rails-3,tabs,multi-step,Ruby,Database,Ruby On Rails 3,Tabs,Multi Step,各位! 首先,我制作了一个包含大量元素的表单:文本字段、文本区域等等。当我把表格准备好后,我明白了把这么大的表格排成一行填写是不方便用户的。我不想使用“步骤”系统(步骤1->步骤2->…->步骤n),因为我希望最终用户能够以任何顺序填写此表单(+用户可以在填写之前看到他需要填写哪些表单),所以我将表单分为几个选项卡 其想法如下:一旦用户在某个选项卡中填写了表单,他点击“保存”按钮并进入下一个(按他选择的任意顺序) 我想知道的是,存储中间数据的最佳方法是什么?我应该为每个选项卡表单提供一些隐藏的输

各位!

首先,我制作了一个包含大量元素的表单:文本字段、文本区域等等。当我把表格准备好后,我明白了把这么大的表格排成一行填写是不方便用户的。我不想使用“步骤”系统(步骤1->步骤2->…->步骤n),因为我希望最终用户能够以任何顺序填写此表单(+用户可以在填写之前看到他需要填写哪些表单),所以我将表单分为几个选项卡

其想法如下:一旦用户在某个选项卡中填写了表单,他点击“保存”按钮并进入下一个(按他选择的任意顺序)

我想知道的是,存储中间数据的最佳方法是什么?我应该为每个选项卡表单提供一些隐藏的输入,并将选项卡id传递给模型,以便在每个“步骤”中,只有选项卡相关的数据被验证并存储在数据库中。或者,也许,我应该有一个会话[:object],它将包含当前对象,最后我将它存储在DB中并从会话中删除

这个想法能实现吗


提前感谢!:)

我不是ruby忍者,但在其他语言(如php)中,我们通常使用会话来实现这一点。为什么不在rails上这样做呢

还可以考虑创建一个“临时存储行”的表,除了使用会话,所以每次更改页面时,可以将数据保存到该表中,最后,将它们全部保存到主表中。


如果您经常放松会话,这将非常有用。。。您可以将临时存储行与用户关联,如果用户失去会话,您可以从数据库中恢复其未完成的表单。

我不是ruby ninja,但在其他语言(如php)中,我们通常使用会话来完成此操作。为什么不在rails上这样做呢

还可以考虑创建一个“临时存储行”的表,除了使用会话,所以每次更改页面时,可以将数据保存到该表中,最后,将它们全部保存到主表中。

如果您经常放松会话,这将非常有用。。。您可以将临时存储行与用户关联,如果用户失去会话,您可以从数据库中恢复其未完成的表单。

您可以简单地采用这种方法,效果很好

但是,这可能不适合您,因为您可能只在收集完所有内容后才存储数据,而不是一步一步地存储

另一种解决方案——正如您所提到的——是使用jQuery选项卡创建表单步骤,并在存储实际记录及其所有数据之前通过AJAX/构建一点验证。

您可以简单地采用这种方法,效果很好

但是,这可能不适合您,因为您可能只在收集完所有内容后才存储数据,而不是一步一步地存储


另一个解决方案——正如您所提到的——是使用jQuery选项卡创建表单步骤,并通过AJAX/在存储实际记录及其所有数据之前构建一点验证。

有一个名为gem的工具,它允许您以非常简单的方式创建向导,检查它。

有一个名为,它允许您以一种非常简单的方式创建向导,检查一下它

看起来有点复杂,我根本不需要AJAX。我需要后端细节:)看起来有点复杂,我根本不需要AJAX。我需要后端详细信息:)