说我的应用程序中有一个贷款资源。它可以被用户接受或拒绝。我可以将accepted
和rejected
操作添加到我的LoansController
,但还有另一个选项可以让我的控制器保持RESTful状态吗?
答案 0 :(得分:1)
有几种方法。
你可以拥有一个LoanAcceptances
控制器,其行为为create
和destroy
- 也就是说,拒绝贷款是“破坏贷款接受”。这是违反直觉的,但确实让你的控制器“RESTful”。
您可以拥有一个LoanAcceptances
控制器,其中create
操作和LoanRejections
控制器具有create
操作 - 也就是说,拒绝贷款是“创建贷款拒绝”。现在你只有一个方法就有两个控制器。
或者,您可以将它们放在LoansController
accepted
和rejected
中。这违反了“REST”的设计原则,但坚持常识。
你会发现人们愿意为这两种方法争论死亡 - 但不要太过追赶它。要么工作。如果您发现LoansController
正在获得越来越多的方法(例如accept
,reject
,mark_pending
,apply_interest
,{{1等等,或许值得将它们拉出来并采用“独立控制器”的方法。
如果你没有找到它,可以保持简单并将它们放在同一个控制器中。
前段时间我问了一个类似的问题,你会发现这个问题很有趣:non-RESTful actions in Rails