ruby中的CRUD以及数据的组织形式

1CRUD

C: .save .create()

R: find(:first) 查询第一条

find(:all, conditions=>”name=’’ and pay_type=’’”) 给定属性查询

通过 hash 集合给定属性值

name=params[:name]

pay_type=params[:pay_type]

find(:all, conditions=>[“name=:name and pay_type=:pay_type”,

{:pay_type=>pay_type, :name=>name}])

通过 hash 参数给定属性值

find(:all, conditions=>params[:order])

find 方法实为对 sql 语句的转换

:conditions =>”name=’Dave’”

给定的是 sql 语句中 where 的查询条件

:order =>”pay_type,shipped_at DESC”

指定排序的条件

:limit =>”10”

指定限制返回的记录数。与 :order 参数同时使用时,返回查询结果保持一致

:offset=>”20”

指定查询数据中的第几条记录之后被读取出来

:select=> ”name,pay_type”

指定要查询的内容字段

:redonly=>true

Find 方法返回的 ActiveRecord 对象不能存回数据库

:from=> 表名

:group=> ”shu” 以书来分组

注:通过分组查询出来的数据是数组型并非 Hash 型的

U update_attribute(: 属性名,“值” )

2 获取字段统计信息

Order.average(: 字段名称 ) 计算 order 数据中给定字段的平均值

Order.maximum(: 字段名称 ) 计算 order 中给定字段的最大值

Order.minimum(: 字段名称 ) 计算 order 中给定字段的最小值

Order.sum(: 字段名称 ) 计算 order 中给定字段的和

Order.count 计算 order 中数据的总数

所有这些函数与 find 函数类似接受 hash 参数

:conditions

:limit

:order

:having

:select

:distinct

:group (group 常与 limit order 一同使用 )

3 对于结构化数据的存取

若将对象中的一对象属性(如数组对象)保存入数据库为某种类型的(多数为字符串行或 text 型)

当在模型中声明 serialize :字段名时,取出数据时仍保持存前数据的类型

如将字符串存入数据库则以 string 形式存储,取出时仍然是个数组

注:数组对象以 YAML 格式存入数据库,若在 ruby 应用外使用则,则不能解析此格式

4 对象聚合的存取

1 首先建立对象内的聚合类:必须满足有一个构造器,该类不能继承 ActiveRecord( 属性应该以 attr_accessor :……) ,参数必须对应数据库字段

2 在外层对象上建立钩子:该钩子建立与内层对象的关系,及内层对象与数据库的映射关系 composed_of :attr_name :class_name=>Name:mapping=>[[:first_name,:first],[: 表字段,对象字段 ][]……]

注意:参数 :attr_name 代表的是聚合对象作为外层对象的属性名(必须有)

:class_name 代表聚合对象的类名(如果外层对象属性与聚合类名相同则无需此参数)

:mapping 当数据库字段与聚合类名不一样时使用此参数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值