Skip to content

Latest commit

 

History

History
64 lines (49 loc) · 2.29 KB

methods_under_relation.md

File metadata and controls

64 lines (49 loc) · 2.29 KB

Relation 文件下的方法

方法 解释
build & new 新建 record 对象
create 新建并保存 record 对象
create! 新建并保存 record 对象,如果有异常则报错
delete 基于 SQL 删除指定 id 的 record 对象
delete_all 基于 SQL 删除 relation 包含的所有 record 对象
可以先把这些 record 对象查询出来,也可以删除的时候传条件进行查询
destroy 删除指定 id 的 record 对象,会运行回调函数
destroy_all 删除 relation 包含的所有 record 对象,会运行回调函数
find_or_create_by 根据所给的属性,查询 record 对象;若查询不到,则创建
find_or_create_by! 根据所给的属性,查询 record 对象;若查询不到,则创建。创建则有可能失败,失败报错
find_or_initialize_by
find_or_create_by! 根据所给的属性,查询 record 对象;若查询不到,则初始化
update 传递参数 ids、attributes,所有指定 id 的 record 对象都会更新
用的是自己的 update 方法
update_all 更新整个 relation 包含的 record 对象(先查询出来),参数为更新内容

方法 解释
== 判断集合是否等价于 relation.
这里的集合,并不限于 relation,也可以数组
any? 非空?
empty? 为空?
blank? 为空?
many? 多个?
也就是 relation.count > 1
none? ...
one? ...
explain 1. 模拟在各自数据下的执行效果
2. 解释生成的 sql
reset 如果对所得的 relation 进行了处理,但还没有保存,使用它可重置之前的处理
load 执行查询操作,但返回的是 relation
reload reset + load
cache_key ...
values 返回规格化的所有查询条件。如果你用的查询条件太多了,可用它来查看
where_values_hash 返回所有 where 查询条件,结果并不准确
to_sql 一般地,使用 to_sql 可以方便的查看生成的 Sql 语句
size ...

除上述方法外,还有:

to_a

eager_loading?

encode_with

initialize_copy

inspect

joined_includes_values

pretty_print

scope_for_create

scoping

uniq_value

我们不需要也不推荐使用 to_a 强制转换 Relation 成数组。