Active Record Basics 5 CRUD: Reading and Writing Data 读写数据

version: rails 4

CRUD是四个动作的缩写, 我们用来操作数据: 创建(Create), 查询(Read), 更新(Update)和删除(Delete).  Active Record自动创建方法, 允许一个应用来查询和操作已被保存在数据表中的数据.
 
5.1 Create 创建
Active Record 对象能够从一个哈希队列, 一个代码库中被创建, 或者在创建之后手工地设置他们的特性. new方法会返回一个新的对象, 而当create 返回的对象会被保存到数据库中.
 
例如, 有一个模型 User, 它的特性是name 和 occupation, 方法create  的调用会被创建和保存一条新的记录到数据库中.

user = User.create(name:  "David" , occupation:  "Code Artist" )

使用方法new, 一个对象能够被初始化, 而没有被保存:


user = User. new
user.name =  "David"
user.occupation =  "Code Artist"

对于user.save的调用将会提交记录到数据库中.

 

最后, 如果有一个代码块, 主要用来初始化, create和new都会创建一个新的对象.


user = User. new   do   |u|
   u.name =  "David"
   u.occupation =  "Code Artist"
end
5.2 Read 查询
Active Record 提供了许多的API用来从数据库中读取数据. 下文是一些不同数据读取方法的例子, 都是由 Active Record 提供的.

# return a collection with all users
users = User.all
# return the first user
user = User.first
# return the first user named David
david = User.find_by(name:  'David' )
# find all users named David who are Code Artists and sort by created_at in reverse chronological order
users = User.where(name:  'David' , occupation:  'Code Artist' ).order( 'created_at DESC' )

你可以学到更到的查询一个Active Record 模型, 参考  Active Record Query Interface

 

5.3 Update 更新
一旦一个 Active Record 对象被重新检索到, 它的属性能够被修改, 以及它能够被保存到数据库中.

user = User.find_by(name:  'David' )
user.name =  'Dave'
user.save

用一个哈希映射特性的名称对应于期望的值有一个快捷的实现, 类似于下文:


user = User.find_by(name:  'David' )
user.update(name:  'Dave' )

这个相当的有用, 当需要马上更新一些特性的时候. 也就是说, 如果你想要在一个代码块中更新多条记录,你可能会发现类中的update_all 方法非常有用:


User.update_all "max_login_attempts = 3, must_change_password = 'true'"
5.4 Delete 删除

同样的,被接收到的一个Active Record 对象能够被销毁,也就是从数据库中删除它。​

 


user = User.find_by(name: 'David' )
user.destroy

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值