首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > Ruby Rails >

The Ruby On Rials Gudie - Active Record根本

2013-10-27 
The Ruby On Rials Gudie -- Active Record基本所谓Active Record就是指MVC模型中的M, 即model。它的主要功

The Ruby On Rials Gudie -- Active Record基本

所谓Active Record就是指MVC模型中的M, 即model。它的主要功能:

  • 表示模型和他的数据
  • 表示模型间的关系
  • 表示模型间的继承关系
  • 在模型与数据库同步前检验模型
  • 面向对象的方式操作数据库

    命名规则变化:rails 将你的model名字复数化,这就是你数据库中表的名字啦。假如你的model名为Book,那么表的名字就是books了,它的复数化不仅仅是加个s那么简单,它会真的像英语里面的复数一样的。Model / ClassTable / SchemaPostpostsLineItemline_itemsDeerdeerMousemicePersonpeople在表中的外键一般是某某_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:这里面有很多很多API1. 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')这样也ok3.上面的那些只是修改一个记录,假如你想修改所有的符合要求的数据,你用update_all比较好
    Delete先找到,比如user = User.find_by_name("David"),然后user.destroy,ok



热点排行