Rails5中AR的新特性

ApplicationRecord

在Rails4中所有的模型都继承自ActiveRecord::Base,不过在Rails5中新引进了一个叫ApplicationRecord的类,存放在:app/models/application_record.rb中,所有Rails5应用都会有这个类, 它的内容非常简单:

 就是一个继承ActiveRecord::Base的抽象类,作用就是为整个应用程序模型提供一个自己的基类

 

 OR语法支持

Rails5中提供了对两个AR Relation对象的OR方法:

 需要注意的是如果你在第一个Relation中是用了:limit distinct offset这三个方法的话,那么就必须在后面的Relation中也使用相同的方法,否则的话就会报错

 最好是在结尾使用:

 ActiveRecord::Relation#cache_key

Rails中使用缓存是很常见的行为,通常我们要缓存一组查询出来的记录,需要手动的设置缓存的key

 Rails5中提供了ActiveRecord::Relation#cache_key

 上面最后一行,Rails5提供的cache_key和我们自己设置的很相似,分别有5个组成部分分别是:

 AR Relation调用update会触发callbacks和validates

 也就是亦可以通过下面的方法更新记录:

更新操作被按ID分解成多个update语句,并且其中每一个都会执行callback和validates, 要注意的是如果你要更新的记录不必要触发callback或validates,那么因为性能原因最好使用 update_all方法。

更新记录时,不更新updated_at/updated_on

 忽略字段

 Belongs_to关联,默认必填

 新的 after_{create,update,delete}_commit 

支持在migration中添加comments 

 

 

 

参考链接:

      http://www.jianshu.com/p/05719f9082fc

 

posted @ 2024-03-08 16:29  鞋带松了  阅读(6)  评论(0编辑  收藏  举报