您的位置:首页 > 编程语言 > Ruby

The Ruby On Rials Gudie -- Active Record基本

2013-10-26 21:51 537 查看
所谓Active Record就是指MVC模型中的M, 即model。它的主要功能:

表示模型和他的数据

表示模型间的关系

表示模型间的继承关系

在模型与数据库同步前检验模型

面向对象的方式操作数据库

命名规则变化:
rails 将你的model名字复数化,这就是你数据库中表的名字啦。假如你的model名为Book,那么表的名字就是books了,它的复数化不仅仅是加个s那么简单,它会真的像英语里面的复数一样的。

Model / ClassTable / Schema
Post
posts
LineItem
line_items
Deer
deer
Mouse
mice
Person
people
在表中的外键一般是某某_id,而主键叫做id,外键一般用于模型间的绑定

创建一个Active Record ,很简单,只要你是ActiveRecord::Base的子类即可

CRUD(这只是Create,Read,Update,Delete的简称)下面我们一个一个的讲

Create:
这里首先要搞清楚的是,create相当与执行了new 和 save,假如用new,要记得save

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


一个一个解释,user是我们的创建的模型名字,而User是我们model 类的名字(rails 命名是很有讲究的,这个可以google下,很有意思,其实也很很简单,你就按照人类的思想来想命名就ok了),而name,occupation是User这个model中的数据名字(也就是列,id这个primary key是自动的,不用管)。也可以先User.new 然后再一个个的指定。

Read:
这里面有很多很多API
1. User.all, 返回所有的记录
2. User.first,返回第一条记录
3. User.find_by_name("David"),返回name列为David的第一条记录,这里的name是列名,也就是model中的数据名,是可以被替换的
3. User.where
(name:
'David'
,
occupation:
'Code
Artist'
).order(
'created_at
DESC'
),find
all users named David who are Code Artists and sort by created_at in reverse chronological order


Update

有三种办法
1. 先找到,比如user = User.find_by_name("David"), user.name = "da", user.save这样就ok了
2. 先找到,比如user = User.find_by_name("David"),
user.update(name:
'Dave'
)这样也ok

3.上面的那些只是修改一个记录,假如你想修改所有的符合要求的数据,你用update_all比较好


Delete
先找到,比如user = User.find_by_name("David"),然后user.destroy,ok
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  rails 4.0 guide