【发布时间】:2013-03-21 08:15:07
【问题描述】:
删除和销毁有什么区别?
如果我们生成一个脚手架,删除日期条目的默认方法是method: :delete,而delete实际上并没有在控制器中定义。那么 Rails 是如何真正确定要做什么的呢?
【问题讨论】:
标签: ruby-on-rails
删除和销毁有什么区别?
如果我们生成一个脚手架,删除日期条目的默认方法是method: :delete,而delete实际上并没有在控制器中定义。那么 Rails 是如何真正确定要做什么的呢?
【问题讨论】:
标签: ruby-on-rails
据我所知:
Delete 方法使用 SQL DELETE 语句而不实例化对象或运行任何回调。
Destroy 对数据库进行 SQL 调用并删除包含当前对象的表中的行,您仍然可以管理该对象,只要它有作用域。
希望这会有所帮助。
【讨论】:
method: :delete 的 http 请求 - 而不是 SQL 语句。
DELETE 是 HTTP 动词,而 destroy 是控制器中的一个动作。如果您在应用程序中使用资源,HTTP DELETE 请求将被路由到控制器中的 destroy 操作(除非您更改默认行为)。
link_to 选项中的method: :delete 表示单击链接将触发HTTP DELETE 请求。
【讨论】: