我在尝试弄清楚如何使用文件上传来实现Rails 3多页面表单时遇到了一些麻烦,其中每个步骤都由控制器中的更新/编辑操作处理。
Ryan Bates为如何使用会话执行多步骤表单提供了精彩的screencast,以及如何通过在初始步骤中保存到数据库然后执行更新来完成类似内容的简要说明在每个连续的步骤。我还阅读了他的gist给出了关于如何创建多步形式的一些不同选项的更详细解释(我倾向于选项1)。
但是,在实际执行多步骤表单时,我仍然有点迷失。我的目标是使用carrierwave进行文件上传(图像),也可以使用geekq为状态机进行工作流程,以帮助进行每一步的验证。
为了清楚起见,我目前正在尝试在向导的初始步骤中在数据库中创建一个条目,并让每个连续的页面更新模型。
有什么想法吗?
非常感谢正确方向的一个例子或一点。
谢谢!
注意:我已经阅读了另一篇文章,其中提到了一些关键/值数据存储的内容,但不幸的是,这有点过头了......
答案 0 :(得分:0)
键值存储或SQL就此问题与您的实际问题密切相关。这些只是关于数据如何实际存储在后端的不同方法。使用这种或那种方式并不能真正改变您的情况。
至于实际问题,我认为它对SO来说太笼统了。多步形式往往彼此非常不同。这样做没有“一个好方法”。
你没有得到任何答案的原因可能是因为没有真正的问题。你应该做的是尝试做一些实际的实施,并在某个地方碰壁时发布更具体的问题。
最后 - 我相信多步形式在可用性方面并不是最好的主意。当然,在某些情况下使用它们是有正当理由的,但如果有办法在你的情况下避免使用它们,你应该三思而后行。
我之前使用表单和上传时遇到的一个问题是验证(它与Multi / Single步骤无关)。通常,当验证失败时,用户必须重新上传文件。幸运的是,在你的情况下,这不是一个很大的问题,因为Carrierwave会自动处理。