构建多页表单以在数据库中创建和编辑模型的最佳方法是什么?

San*_*jay 4 ruby-on-rails ruby-on-rails-3

我是Rails的新手.

在Rails中设计/构建多页表单的最佳方法是什么?我希望表单在提交表单的第一页时立即在数据库中创建新记录,并且表单的每个后续页面都要在数据库中更新该记录.

我希望在提交第一页之后立即创建记录的原因是,可以存在用户稍后返回完成的未完成记录的概念.

一旦创建,我想允许用户通过直接转到该部分来编辑模型的任何部分.

我知道足够的Rails如果你指导我从概念上构建这个概念的最佳方法,我应该能够自己弄清楚代码.

谢谢.

Joh*_*ass 6

我有一个以这种方式工作的多步注册过程.我是第一次创建记录,然后其他步骤是对该记录进行编辑/更新.我为此使用多个控制器; 尝试将所有逻辑塞入一个控制器操作中是一种更清晰的方法(尽管您可以使用来自同一控制器的多个操作,但它也可以正常工作,但不要忘记为自定义操作创建路由).这种方法使得在第一步之后的步骤中添加的数据的验证更加困难,但是您总是可以通过在模型上调用errors.add来添加自己的错误,实质上是滚动您自己的验证.您还可以在会话控制器中编写逻辑,以便在用户稍后返回并且尚未完成时,将用户引导回多步表单中的相同步骤.


jpe*_*thy 5

Ryan Bates在他的一个Railscasts => MultiSteps Forms中解释了这一点