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

 

original:  http://guides.rubyonrails.org/active_record_basics.html#crud-reading-and-writing-data

你可能感兴趣的:(rails,ruby,Active,Record)