Ruby on rails rails多步骤表单的最佳实践?

Ruby on rails rails多步骤表单的最佳实践?,ruby-on-rails,forms,rubygems,Ruby On Rails,Forms,Rubygems,我想在Rails 3中创建一个mutlistp表单。我在上面看过Railscapsts一集,但我觉得他在创建表单时没有使用最佳实践。我觉得这是一种草率的完成任务的方式。使用rails中的最佳实践创建多步骤表单的最佳方法是什么?如果没有更多信息,您的问题有点难以回答,真正的答案应该是详细的教程(如Railscast),而不是简单的答案,但这里有一些想法可以帮助您找到答案 多步骤表单有两种主要方法: 使用Javascript逐位显示表单 创建单独的视图,并使用Create/update或类似方法将用

我想在Rails 3中创建一个mutlistp表单。我在上面看过Railscapsts一集,但我觉得他在创建表单时没有使用最佳实践。我觉得这是一种草率的完成任务的方式。使用rails中的最佳实践创建多步骤表单的最佳方法是什么?

如果没有更多信息,您的问题有点难以回答,真正的答案应该是详细的教程(如Railscast),而不是简单的答案,但这里有一些想法可以帮助您找到答案

多步骤表单有两种主要方法:

  • 使用Javascript逐位显示表单

  • 创建单独的视图,并使用
    Create
    /
    update
    或类似方法将用户从一个视图路由到下一个视图

  • 每种方法都有优点,这取决于您是否希望支持javascript,以及您对在节之间保存数据的要求

    1的优点

    • 用户可以更快地从一个部分导航到另一个部分(javascript隐藏/显示是即时的)
    • 如果用户希望参考前面的部分,则可以轻松访问数据
    • 更简单的控制器操作
    1的缺点

    • 不适用于未运行javascript的用户(这里除了将表单显示为一个巨大的块外,不可能进行渐进式增强)
    • 将要求您提供基于javascript的导航,以便从一个部分移动到另一个部分(如果您不熟悉.js,这只是一个缺点)
    • 如果要在两个步骤之间保存用户信息,则需要AJAX
    • 如果没有AJAX和javascript,如果用户不小心按下了后退按钮等,那么用户就有丢失大量条目的风险

      • 如果没有更多信息,你的问题有点难以回答,真正的答案应该是详细的教程(如Railscast),而不是简单的答案,但这里有一些想法可以帮助你找到答案

        多步骤表单有两种主要方法:

      • 使用Javascript逐位显示表单

      • 创建单独的视图,并使用
        Create
        /
        update
        或类似方法将用户从一个视图路由到下一个视图

      • 每种方法都有优点,这取决于您是否希望支持javascript,以及您对在节之间保存数据的要求

        1的优点

        • 用户可以更快地从一个部分导航到另一个部分(javascript隐藏/显示是即时的)
        • 如果用户希望参考前面的部分,则可以轻松访问数据
        • 更简单的控制器操作
        1的缺点

        • 不适用于未运行javascript的用户(这里除了将表单显示为一个巨大的块外,不可能进行渐进式增强)
        • 将要求您提供基于javascript的导航,以便从一个部分移动到另一个部分(如果您不熟悉.js,这只是一个缺点)
        • 如果要在两个步骤之间保存用户信息,则需要AJAX
        • 如果没有AJAX和javascript,如果用户不小心按下了后退按钮等,那么用户就有丢失大量条目的风险

        你能解释一下为什么你认为Ryan在做多步骤表单时“草率”吗?我只是觉得控制器在创建操作中有太多的代码。没有其他方法可以创建多步骤表单吗?我在amazon和legalzoom这样的大型网站上看到过,整个签出过程主要是作为URL中的GET请求完成的。这是一个坏主意吗?如果您的意思是将表单作为GET检索并作为POST/UPDATE提交,这对于基于HTTP的表单来说是通用的。Thomas-我们在回答您的问题方面做得如何?您能给出为什么您认为Ryan在执行多步骤表单时“草率”的原因吗?我只是觉得控制器在创建操作中有太多的代码。没有其他方法可以创建多步骤表单吗?我在amazon和legalzoom这样的大型网站上看到过,整个签出过程主要是作为URL中的GET请求完成的。这是一个坏主意吗?如果你是说表单是作为GET检索并作为POST/UPDATE提交的,这对于基于HTTP的表单来说是通用的。Thomas-我们在回答你的问题方面做得如何?我看到一些网站的多步骤表单与我想做的类似,它们的排列方式类似于步骤1的order/1和步骤2的order/2等等。。。要做到这一点,最好的方法是为每一步制作不同的控制器方法,对吗?@Thomas-正如我所解释的,这只是一种方法(即方法2)。请记住,许多主要网站可能使用方法1的复杂版本。我看到一些网站的多步骤形式与我想做的类似,它们的排列方式为步骤1的顺序/1和步骤2的顺序/2,依此类推。。。要做到这一点,最好的方法是为每一步制作不同的控制器方法,对吗?@Thomas-正如我所解释的,这只是一种方法(即方法2)。请记住,许多主要站点可能使用方法1的复杂版本。