【问题标题】:Ruby on Rails using tabsRuby on Rails 使用标签
【发布时间】:2012-09-15 18:12:35
【问题描述】:

大家!

起初,我制作了一个包含大量元素的表单:文本字段、文本区域等。准备好表格后,我才明白,这么大的表格要连续填写,不太方便。我不想使用“step”系统(步骤 1 -> 步骤 2 -> ... -> 步骤 n),因为我希望最终用户能够拥有此表格以任何顺序填写(+ 用户将能够预先看到他需要填写哪些表格),因此我将表格分为几个 选项卡。

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

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

这个想法能实现吗?

提前致谢! :)

【问题讨论】:

    标签: ruby database ruby-on-rails-3 tabs multi-step


    【解决方案1】:

    有一个叫做wicked的gem,它可以让你以非常简单的方式创建向导,看看

    【讨论】:

      【解决方案2】:

      我不是 ruby​​ 忍者,但在其他语言(如 php)中,我们通常使用会话来执行此操作。为什么不在 Rails 上执行此操作?

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

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

      【讨论】:

        【解决方案3】:

        您可以简单地使用Railscasts 217 - Multistep form 方法,效果很好。

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

        另一个解决方案 - 正如你提到的 - 将使用例如jQuery 选项卡用于创建表单步骤并通过 AJAX / backbone.js 进行一些验证,然后将实际记录与其所有数据一起存储。

        【讨论】:

        • 看起来有点复杂,我根本不需要 AJAX。我需要后端详细信息:)
        猜你喜欢
        • 2012-07-05
        • 1970-01-01
        • 2022-01-17
        • 2017-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-17
        • 1970-01-01
        相关资源
        最近更新 更多