我有一个多步骤表单,用户在几个不同的页面上填写信息。在传统的 Rails 中,您将每个资源单独保存在其自己的控制器中,并使用 REST 操作来操作数据。
在传统系统中,我将有 3-5 个不同的控制器(一些步骤是可选的)用于单个多步骤形式。如果我按照传统方式进行操作,那么控制器中就没有真正意义上的“秩序”。进入该项目的新开发人员必须了解哪些步骤映射到哪些步骤等等。
另一方面,我曾想过打破常规,使用一个控制器来组织整个多步骤表单。该控制器将充满以下方法:
def personal_info
# code...
end
def person_info_update
# code...
end
def residence_info
# code...
end
def residence_info_update
# code...
end
# many more coupled methods like the above...
这个单一的控制器会变得相当长,但它本质上是一堆耦合的方法:一个用于显示步骤(表单),另一个用于更新和重定向到下一步。
这将打破 Rails 约定,我必须设置自己的路由。
但我很好奇其他人是如何解决这个问题的?我知道两者都可以工作,但我想知道从长远来看哪个更容易维护和编码。