`
jiajie0531
  • 浏览: 29435 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

 

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics