新同学在这上面搞混了,我也不知道如何解释 rails 为什么这么设计
要区分一下 HTTP 协议里的方法和 control 里的方法 前者常用到的:get、post、put、delete、head 等等 后者与前者的对应关系,在 guides 里有详细说明: http://guides.rubyonrails.org/routing.html#crud-verbs-and-actions
Rails uses 4 standard methods(verbs), namely:
Besides it has 7 RESTful actions:
Rails never uses the same verb as the corresponding action. Routing to the action destroy makes it possible to do more than a single DELETE, through the corresponding action in the controller.
http://stackoverflow.com/questions/14730451/why-the-ruby-on-rails-action-destroy-is-not-named-delete
这问题可以扩展为 为何 POST 对应的 action 是 create PUT 对应的 action 是 update DELETE 对应的 action 是 destroy?
看 @huacnlee 发的 SO 的回答,好像是在 HTTP verb DELETE 出现之前,Rails 就已经有 destroy action 了,虽然后来支持了新的 DELETE verb,但是 action 的名字还是保持不变。