首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails -在会话中保存params通常是多步骤表单的一个好主意吗?

Rails -在会话中保存params通常是多步骤表单的一个好主意吗?
EN

Stack Overflow用户
提问于 2016-12-02 12:09:34
回答 2查看 276关注 0票数 0

我通常对Rails很陌生,但对MVC架构有很好的理解。

使用多步表单,我一直在将我的params保存到我的会话,在多步骤表单的末尾,从会话中提取值并保存到我的db。我想在多个步骤结束时保存数据,而不是整个旅程。

一个例子:-

表格1控制器

代码语言:javascript
复制
session[:user_details] = params

表格2控制器

代码语言:javascript
复制
@orders = Order.new
@orders.first_name = session[:user_details]['first_name']
@orders.last_name = session[:user_details]['last_name']
@orders.save!

在这种情况下,这种方法是最好的方法吗?还是在ruby中有一种更清晰的替代方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-02 13:34:40

另一种方法是使用部分更新。而不是将结帐过程看作是对一个庞大的POST请求的累积,您可以尽早创建订单,并将流程中的每一个后续步骤作为一个补丁请求来更新订单,其中包含更多的详细信息,如地址或支付细节。

另一种方法是使用关联并使用一个控制器进行CRUDing,这是一个订单中分离的部分:

代码语言:javascript
复制
POST /order 
-> GET /order/1/addresses/new
POST /order/addresses
-> GET /order/1/payments/new
POST /order/payments
-> GET /order/1/confirmation
票数 2
EN

Stack Overflow用户

发布于 2016-12-02 12:21:54

我认为这是一个很好的方法,但是当用户再次输入新表单时,您必须记住清除会话。另一种方法是隐藏“以前的表单”,并通过javascript显示“下一个表单”。实际上,以前的所有字段都存储在隐藏字段中,而不是会话中,而且您只有一个表单,您只需要隐藏给定的部分,这样用户就会认为他在下一步。在最后一步,您提交表单并像标准的一步表单一样处理它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40931906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档