在Rails中保持控制器RESTful

时间:2017-03-12 03:34:50

标签: ruby-on-rails rest controller

说我的应用程序中有一个贷款资源。它可以被用户接受或拒绝。我可以将acceptedrejected操作添加到我的LoansController,但还有另一个选项可以让我的控制器保持RESTful状态吗?

1 个答案:

答案 0 :(得分:1)

有几种方法。

你可以拥有一个LoanAcceptances控制器,其行为为createdestroy - 也就是说,拒绝贷款是“破坏贷款接受”。这是违反直觉的,但确实让你的控制器“RESTful”。

您可以拥有一个LoanAcceptances控制器,其中create操作和LoanRejections控制器具有create操作 - 也就是说,拒绝贷款是“创建贷款拒绝”。现在你只有一个方法就有两个控制器。

或者,您可以将它们放在LoansController acceptedrejected中。这违反了“REST”的设计原则,但坚持常识。

你会发现人们愿意为这两种方法争论死亡 - 但不要太过追赶它。要么工作。如果您发现LoansController正在获得越来越多的方法(例如acceptrejectmark_pendingapply_interest,{{1等等,或许值得将它们拉出来并采用“独立控制器”的方法。

如果你没有找到它,可以保持简单并将它们放在同一个控制器中。

前段时间我问了一个类似的问题,你会发现这个问题很有趣:non-RESTful actions in Rails