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 ...
随机推荐
- 作者:wallimn
经过这几天对DHTMLXTree的折腾总算是有点眉目了.领导催得紧.组长紧的催. 唉,把握这次机会来好好总结一下DHTMLXTree. 还是老套路.首先来简单了解一下DHTMLXTree. DHTML ...
- iOS: 学习笔记, 加入一个带界面约束的控制器
1. 创建一个空iOS应用程序(Empty Application). 2. 加入加控制器类. 改动控制器类的viewDidLoad - (void)viewDidLoad { [super view ...
- PLSQL Developer设置及快捷键设置
1.登录后默认自动选中My Objects 默认情况下,PLSQL Developer登录后,Brower里会选择All objects,如果你登录的用户是dba,要展开tables目录,正常情况都需 ...
- 把质量控制工作往前推进(1)——安装sonarqube
曾经关注点一直在怎么提高应用程序的质量,没太在意代码级别的质量.近期由于某些因素的推动,须要关注到代码级别的质量去,把质量工作尽量往前推,也符合质量控制的原则. 试用了一下sonarqube(老版本 ...
- IIS5.1、IIS6.0、IIS7.5中安装配置MVC 3
本文主要介绍在IIS5.1.IIS6.0.IIS7.5中安装配置MVC 3的具体办法! 正文: IIS5.1 1. 安装Microsoft .net FrameWork 4.0安装包; 2. 安装AS ...
- mysql用merge合并表
merge合并表的要求 1.合并的表使用的必须是MyISAM引擎 2.表的结构必须一致,包括索引.字段类型.引擎和字符集 实例: create table if not exists user1( i ...
- JSON Web Token (JWT) 实现与使用方法
1. JSON Web Token是什么 JSON Web Token (JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的.自包含的方式,用于作为JSON对象在各方之间安全地传输信息.该 ...
- 工作总结 @Html.EditorFor @Html.TextBoxFor 表达式树 绑定显示日期格式数据
页面显示 不出来 没有 这个input ............. 换成 @Html.TextBoxFor input 出来了 这是 为什么呢 ? 用@Html.TextBox 也可以出来 为什么 @ ...
- Unity动态字体在手机上出现字体丢失问题解决
在我们游戏的开发过程中,在部分手机上运行游戏的时候,出现了字体丢失的问题,出问题的手机似乎用的都是高通芯片. 使用的unity是4.2.0版本,ngui是3.4.9版本. 在unity的论坛及unit ...
- inside when() you don't call method on mock but on some other object
错误原因:调用静态方法,要事先引入静态类,否则mock的时候会默认为测试的类 解决方法:@PrepareForTest({SecurityContextHolder.class})引入静态类 注:@P ...
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"