【问题标题】:Keeping controllers RESTful in Rails在 Rails 中保持控制器 RESTful
【发布时间】:2017-03-12 03:34:50
【问题描述】:

假设我的应用中有贷款资源。它可以被用户接受或拒绝。我可以将acceptedrejected 操作添加到我的LoansController,但是是否有其他选项可以让我的控制器保持RESTful?

【问题讨论】:

    标签: ruby-on-rails rest controller


    【解决方案1】:

    有几种方法。

    您可以拥有一个带有createdestroy 操作的LoanAcceptances 控制器——也就是说,拒绝贷款是“破坏贷款接受”。这是违反直觉的,但确实让您的控制器保持“RESTful”。

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

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

    你会发现有人愿意为这两种方法争论不休——但不要太沉迷其中。要么会工作。如果您发现您的LoansController 方法越来越多(例如acceptrejectmark_pendingapply_interestmake_payment 等),那么也许值得拉他们走出去的“独立控制器”方法。

    如果您没有发现,最好保持简单并将它们放在同一个控制器中。

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

    【讨论】:

    • 这很有意义。谢谢。
    猜你喜欢
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多