rails dependent
dependent 可以設定當物件刪除時,也會順便刪除它的 has_many 物件: class Event < ActiveRecord::Base has_many :attendees, :dependent => :destroy end :dependent 可以有三種不同的刪除方式,分別是: :destroy 會執行 attendee 的 destroy 回呼 :delete 不會執行 attendee 的 destroy 回呼 :nullify 這是預設值,不會幫忙刪除 attendee 要不要執行 attendee 的刪除回呼效率相差不少,如果需要的話,必須一筆筆把 attendee 讀取出來變成 attendee 物件,然後呼叫它的 destroy。如果用:delete 的話,只需要一 個 SQL 語句就可以刪除全部 attendee。 deletedestroy
destroy是先查出来再删除 2.2.4 :017 > Credit.first.destroy Credit Load (0.5ms) SELECT "credits".* FROM "credits" ORDER BY "credits"."id" ASC LIMIT 1 (0.3ms) begin transaction SQL (0.5ms) DELETE FROM "credits" WHERE "credits"."id" = ? [["id", 2]] (63.3ms) commit transa 2.2.4 :006 > Credit.destroy_all Credit Load (0.6ms) SELECT "credits".* FROM "credits" (0.1ms) begin transaction SQL (0.4ms) DELETE FROM "credits" WHERE "credits"."id" = ? [["id", 7]] (59.9ms) commit transaction (0.2ms) begin transaction SQL (0.2ms) DELETE FROM "credits" WHERE "credits"."id" = ? [["id", 8]] (53.4ms) commit transaction (0.2ms) begin transaction SQL (0.3ms) DELETE FROM "credits" WHERE "credits"."id" = ? [["id", 9]] (53.7ms) commit transaction 2.2.4 :023 > Credit.first.delete Credit Load (0.5ms) SELECT "credits".* FROM "credits" ORDER BY "credits"."id" ASC LIMIT 1 SQL (54.7ms) DELETE FROM "credits" WHERE "credits"."id" = ? [["id", 3]] 2.2.4 :005 > Post.delete_all SQL (73.7ms) DELETE FROM "posts"
rails dependent的更多相关文章
- 10 steps to get Ruby on Rails running on Windows with IIS FastCGI- 摘自网络
Since the original tech preview release of FastCGI last year, we've been seeing a lot of requests fo ...
- rails将类常量重构到数据库对应的表之后记
怎么还有啊!别急,有强迫症的人伤不起!有点小事没说完感觉痒痒的:就是如果表payment_types经常变动该怎么办?每次都要关闭rails网页服务器,然后重启吗?那也太麻烦鸟,最终的解决方案是,在O ...
- SQL 基础学习(1):下载DB Browser for SQLite. 下载graphviz(为了使用Rails ERD的前提)出现❌,已debug.
SQL is a standard language for storing, manipulating and retrieving data in databases. 关系型数据库:RDBMS( ...
- Ruby on Rails 开发笔记
安装 Ruby on Rails Install Rails: A step-by-step guide 创建应用 # 创建新的应用程序 $ rails new blog $ cd blog # 启动 ...
- 开发新手最容易犯的50个 Ruby on Rails 错误(1)
[编者按]本文最早发布与 JETRuby 博客,主要介绍了开发新手最容易犯的 Ruby 错误.文章系国内 ITOM 管理平台 OneAPM 编译呈现. 一年前,我们创立了以 "Rubyboo ...
- 12月3日周日,关联:has_many(dependent::delete_all和destroy的区别) 注意看log; where等查询语句的用法。 layout传递参数❌
错误❌: 1.belongs_to :job, dependent: :destroy //尝试删除一条resumen后,job没有同步删除?? 答:建立一对多的关系,如job和resume.应该在j ...
- ActiveStorage Overview --Rails guide (history:7-1更新)
如何attach一个或多个文件到一个记录.has_many_attach()方法. 如何删除一个附加的文件. purge方法 如何连接到一个附加的文件.url_for() 如何使用variants来转 ...
- 《Ruby on Rails教程》学习笔记
本文是我在阅读 Ruby on Rails 教程的简体中文版时所做的摘录,以及学习时寻找的补充知识.补充知识主要来自于 Ruby on Rails 實戰聖經. Asset Pipeline 在最新版 ...
- Rails sanitize
The SanitizeHelper module provides a set of methods for scrubbing text of undesired HTML elements. T ...
随机推荐
- angularjs与server交互
真正的应用须要和真实的server进行交互,移动应用和新兴的Chrome桌面应用可能是个例外,可是对于此外的全部应用来说,不管你是想把数据持久化到云端.还是须要与其它用户进行实时交互.都须要让应用与s ...
- WebService的缓存机制
分类: .NET ASP 2010-11-13 10:00 849人阅读 评论(0) 收藏 举报 webservicestring数据库nullapplicationweb服务 WebService的 ...
- Jmeter返回org.apache.http.NoHttpResponseException: The target server failed to respond解决办法
1.问题:这段时间使用jmeter压测时(300个请求,持续压300s,加速期10s),压力平稳时偶然错误,部分请求失败事务报错信息如下 org.apache.http.NoHttpResponseE ...
- [[NSBundle mainBundle] pathForResource:@"name" ofType:@"type"] 找不到对应的文件解决方法
最近在使用[[NSBundle mainBundle] pathForResource:@"name" ofType:@"type"]时,找不到其对应的文件,文 ...
- IOS7下,AVAudioRecorder需要注意的一点
iOs7下,使用AVAudioRecorder录音的时候,会在顶部出现一个红框,或者红框一闪而过,这时候需要设置AVAudioSession,如下代码: AVAudioSession * sessio ...
- asp.net core mvc视频A:笔记1.基本概念介绍
此笔记来自视频教程 MVC本身与三层架构没有联系 使用VS2017新建一个默认的asp.net core mvc网站,认识结构及文件用途.
- smarty、smarty格式化、smarty整数、smarty float、smarty各种转换方式、smarty日期转换等等 (转)
<? require("setup.php"); define('PAGETITLE','pagtitle'); function insert_top($lid,$sid) ...
- sgu101-欧拉回路
101. Domino time limit per test: 0.25 sec. memory limit per test: 4096 KB Dominoes – game played wi ...
- ngnix 参考配置
#user nobody; worker_processes ; #error_log logs/error.log; #error_log logs/error.log notice; #error ...
- 为什么 java wait/notify 必须与 synchronized 一起使用,jvm究竟做了些什么
这个课题提出来的是原先的线程并发解决的思路.目前解决线程并发,可以是lock接口结合condition 并发问题一直以来就是线程必不可少的话题. java 是第一个内置对多线程支持的主流编程语言.在 ...
destroy
destroy是先查出来再删除
2.2.4 :017 > Credit.first.destroy
Credit Load (0.5ms) SELECT "credits".* FROM "credits" ORDER BY "credits"."id" ASC LIMIT 1
(0.3ms) begin transaction
SQL (0.5ms) DELETE FROM "credits" WHERE "credits"."id" = ? [["id", 2]]
(63.3ms) commit transa
2.2.4 :006 > Credit.destroy_all
Credit Load (0.6ms) SELECT "credits".* FROM "credits"
(0.1ms) begin transaction
SQL (0.4ms) DELETE FROM "credits" WHERE "credits"."id" = ? [["id", 7]]
(59.9ms) commit transaction
(0.2ms) begin transaction
SQL (0.2ms) DELETE FROM "credits" WHERE "credits"."id" = ? [["id", 8]]
(53.4ms) commit transaction
(0.2ms) begin transaction
SQL (0.3ms) DELETE FROM "credits" WHERE "credits"."id" = ? [["id", 9]]
(53.7ms) commit transaction
2.2.4 :023 > Credit.first.delete
Credit Load (0.5ms) SELECT "credits".* FROM "credits" ORDER BY "credits"."id" ASC LIMIT 1
SQL (54.7ms) DELETE FROM "credits" WHERE "credits"."id" = ? [["id", 3]]
2.2.4 :005 > Post.delete_all
SQL (73.7ms) DELETE FROM "posts"