Rails 处理“多个控制器动作”的方式是什么?在我的应用程序中,我有一个特殊的“购物车”流程,它影响了几个模型。基本上,当他/她登录时,该流程可供特殊类型的用户使用,如下所示:
- 添加用户。
- 在这里可以“添加用户”。如果您了解 Basecamp,这一步有点像在项目中添加人员。所以在这一步我正在考虑用户资源。
- 在这里,可以为之前添加的每个用户“购买”东西。
- 这有点像一个基本的购物车。因此,就资源而言,我正在考虑“商店”或“购物车”。
- 这是一个确认步骤。我再次认为这是购物车的一部分。
确认后,应该会发生几件事。
- 在步骤 1 中添加的用户应该以某种方式被激活。也就是说,他们将无法在激活之前登录。
- 应该从第 2 步中的购买中下订单。
- 您在第 2 步中购买的“东西”是某种虚拟产品。即产品在用户登录时以“邀请”的形式出现。这个细节并不太重要,而且有点难以解释。关键是,确认后,应在数据库中创建与用户相关联的邀请。
同样,系统的细节有点难以解释,但我的主要问题是如何在 Rails 中最好地实现这类东西。In 涉及多个步骤,并在所有步骤中影响多个模型。
我一直在考虑用某种状态机来做这件事。然后状态机将负责在步骤或状态之间进行转换,并执行所需的操作。所以我想我会有一个 StateMachineController 或其他东西,没有模型,可以实现主要逻辑。这是可以使用的吗?似乎 Rails 确实偏向于 RESTfull 资源,但我似乎想不出类似上述的 RESTfull 方法。谢谢。