首先初始化一个数据库:
?
class="shell" name="code">rake db :create;rake db :migrate
???
接着生成一个数据库和资料表:
?
rails g model user name:string password_digest:string token:string rake db :migrate
?
资料表有name和password_digest两个属性(password_digest是ruby的加密和判定方法,可以把它看成password和password_confirmation两个属性)
?
?
资料表的新增
?
ActiveRecord提供了四种API,分别是save,save!,create,create!
下面就save和create比较说明一下,
在资料表中添加一条记录:
save方法:
a = User.new( :name => "moenyinto",:password =>"1",:password_confirmation => "1") a.save
?
create方法:
User.create( :name => "moenyinto",:password =>"1",:password_confirmation => "1")
?
create的方法相当于new个新的记录并save保存
?
?
?
资料表的查询
?
有这样一张表User:
?
id name identity 1money
teacher 2 into doctor 3 moneyinto teacher?
find方法:?
User.find(2) //找到id为2的那条记录
?
也可以用find_by_id,效果一样。
?
我们还可以用find_by_name,比如:
find_by_name("moneyinto") //找到资料表中name属性值为moneyinto的记录
?
select方法:
我们有时不需要资料表中的所有数据,比如我们只需要姓名(name)
我们可以使用select
User.select("name") //这样就选出了所有的姓名组成了一个新的数组
?
where方法:
我们根据条件筛选需要的记录,一般用where,
比如我们找到身份为老师的所有记录,可以这样写
User.where(:identity => 'teacher')
?
where使用很灵活,可以自己去深入研究一下。
?
order排序方法:
根据姓名进行排序可以这样写
User.order("name") //这样输出的就是根据姓名排序好的表
?
查询的限定条件(limit,offset,first,last,all)
limit:限定取出的记录数
offset:可以忽略前几个记录不取出
first:取出第一条记录
last:取出最后一条记录
all:取出所有记录
User.limit(2) //取出前两条记录 User.offset(1) //从第二条记录开始取出所有的 User.first User.last User.all
?
?
根据上面的可以串联着搭配写,比如写一个:
User.where(:identity => "teacher").offset(1) //身份为老师的除了第一条的其他所有记录
?
?
?
资料表记录删除
User.delete(2) //删除id为2的记录 User.find_by_name("moneyinto").delete //删除姓名为moneyinto的记录
?
?
?
资料表记录统计
User.count //统计数据表有多少条记录 User.where(:identity => "teacher").count //统计身份为老师的记录有多少
?
?
?