【问题标题】:how to create wizard forms in ruby on rails如何在 ruby​​ on rails 中创建向导表单
【发布时间】:2011-02-05 21:41:14
【问题描述】:

我正在尝试了解在 ruby​​ on rails 中创建向导表单的最佳选择。理想情况下,我希望拥有它,以便应用程序注册有一个后退和下一步按钮,允许用户逐步提交数据。

所以在第 1 步中,他们可以填写联系信息。完成后,他们可以单击下一步并进入第 2 步以填写付款信息等。如果他们犯了错误,他们可以单击返回并更正。有些步骤是必需的,有些则不需要,但您必须完成最后一步才能将数据提交到数据库以进行注册。然后,他们需要能够在完成后以相同的方式返回并填写过去的步骤。 (例如:也许如果他们单击个人资料链接,他们可以以相同的方式重新完成这些步骤,因为他们不想立即完成所有步骤。也许在他们完成注册步骤之前获得一个跳过按钮? )。我还需要验证已完成哪些步骤,以防止他们在更正或完成之前进入下一步。

选项 1)我注意到,在 stackoverflow 的其他问题中,已建议将 ajax 作为选项。我遇到的唯一问题是如果禁用了 javascript,用户将无法注册。理想情况下,我希望它是 ruby​​ on rails 原生的,但我愿意使用任何必要的东西来让它工作。

【问题讨论】:

    标签: ruby-on-rails ruby forms wizard multipage


    【解决方案1】:

    您应该在多步骤表单上观看此 rails cast 剧集:

    http://railscasts.com/episodes/217-multistep-forms

    准备好倒带再看一遍。他的速度很快!

    【讨论】:

    • 感谢您的推荐。实际上,我经常观察瑞恩的演员阵容,并且我自己也遇到过这个问题。无论如何,谢谢。
    【解决方案2】:

    有几个plugins 在rails 中提供向导构建便利。
    Acts as WizardWizardly 似乎最受欢迎。
    主要思想是:
    * 第一步创建模型
    * 然后在后续步骤中对其进行编辑,
    * 对每个步骤应用部分验证和
    * 让模型实现某种状态机。

    【讨论】:

    • 谢谢,我一定会试一试的。
    • 这是一个好方法(尤其是在处理文件上传时),但是这些 gem 都不能与 Rails 3 一起使用。还有其他可用的吗?
    • 我不知道,也许可以尝试移植一个,应该不难,或者自己制作,这项技术很容易实现。
    • 我的印象是 gem 没有被移到 rails 3,因为 jQuery 可以完成同样的事情
    • 为什么模型应该知道它的填充方式(我的意思是内置 FSM)?
    【解决方案3】:

    Wicked 看起来很有希望用于 rails 3:

    https://github.com/schneems/wicked

    【讨论】:

      【解决方案4】:

      【讨论】:

        【解决方案5】:

        另一种方法,特别是对于更简单的多步骤表单,是根据步骤简单地显示隐藏单个表单的部分,这样您就不会在每一步都访问数据库,而是让用户建立他的对象,直到他准备好一个有效的实例。

        这种方法强烈支持使用表单类,而不是直接使用模型 (http://blog.codeclimate.com/blog/2012/10/17/7-ways-to-decompose-fat-activerecord-models/),您需要稍微调整错误消息的呈现方式。

        优点:只有一个 db 命中,没有持久化无效实例的麻烦(不是 null 列,before_save 健全性检查混乱的属性),没有回调地狱

        缺点:发送给用户的 html 更多,错误消息调整,需要精心构建的表单类才能优雅且真正有用

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-03-01
          • 1970-01-01
          • 1970-01-01
          • 2012-07-22
          • 1970-01-01
          • 2017-03-19
          • 2013-04-29
          • 1970-01-01
          相关资源
          最近更新 更多