我在理解如何将特定的设计流程融入适当的REST架构时遇到了一些麻烦。让我解释一下这个流程:
我正在创建技术支持网站,用户可以在其中提交 ProblemRequests 。在首页上,用户选择他遇到问题的所有类别并点击“获取帮助”,然后将其重定向到下一页,在那里他填写一些表格以提交他的请求。以下是页面:
Page 1 - Select Problem Categories
Page 2 - Fill out Problem Request
第2页基本上就像 ProblemRequest 的新动作一样。问题是每个ProblemRequest都依赖于多个 ProblemCategories ,所以嵌套路线在这里不起作用。接下来要想到的是将所有相关的ProblemCategories id作为 NEW ProblemRequest 操作的GET参数发送,但我不想在URL中公开ID。
我想到了一种多部分形式,但这涉及使 ProblemRequests 具有状态,其中一些是完整的而另一些是不完整的。我不想处理这些影响,因为实际上这是一个单页提交,而不是一个非常冗长的过程。
理想情况下,覆盖 ProblemRequests控制器的新操作以响应POST操作,但我不知道这是否被认为是错误的编程习惯。这是一个主要的罪吗?我可以更改NEW操作以响应POST而不是GET吗?
请指教,
提前致谢。
答案 0 :(得分:2)
保持简单。是否有任何理由往返服务器?我只是将两个“页面”设为一个页面,并维护所选类别客户端的状态。
答案 1 :(得分:1)
使用多步骤表单:http://railscasts.com/episodes/217-multistep-forms
您可以在会话中保存ID,在完成信息填写之前,模型不会保存在数据库中。适用于简单的2或3步形式。
对于更复杂的向导,您可以使用像https://github.com/schneems/wicked
这样的宝石