方法 | 解释 |
---|---|
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 成数组。