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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话