`
gift5168xf
  • 浏览: 28991 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

    博客分类:
  • ROR
阅读更多

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 当数据库字段与聚合类名不一样时使用此参数

分享到:
评论

相关推荐

    ruby 入门练习上手项目

    9. **数据库操作**:在Rails中,ActiveRecord允许你方便地与数据库交互,创建数据模型,定义关联,执行CRUD(创建、读取、更新、删除)操作。 10. **RESTful API设计**:了解如何在Rails中构建符合REST原则的API,...

    Ruby-OhmRedis的Objecthash映射库

    在压缩包`soveran-ohm-5df4f19`中,很可能包含了Ohm库的源代码,你可以通过阅读这些代码深入了解其内部实现,包括它如何将Ruby对象转化为Redis命令,以及如何处理各种数据结构。这对于深入理解Redis和Ruby之间的交互...

    ruby BBS

    在Ruby BBS中,这些功能可能通过以下方式实现: 1. 用户认证:使用Devise或Authlogic等gem进行用户身份验证,管理用户的注册、登录和登出。 2. 论坛分类:创建论坛类别模型,用于存储不同主题的讨论区。 3. 主题和...

    ruby on rails 实例depot

    1. **Rails安装**:首先,你需要安装Ruby、Rails以及相关的开发工具。Ruby版本管理器如RVM或rbenv可以帮助你管理多个版本的Ruby。然后通过gem包管理器安装Rails。 2. **创建新项目**:使用`rails new depot`命令...

    Ruby on Rails: Up and Running

    学习Ruby的基础包括变量、数据类型、控制结构、类与对象、方法、模块和异常处理等。 2. **Rails框架概念**:Rails的核心设计理念是DRY(Don't Repeat Yourself)和Convention Over Configuration,旨在减少重复代码...

    Wrox.Professional.Ruby.on.Rails.Feb.2008.pdf

    书中会讲解如何设置数据库连接,创建数据模型,以及执行CRUD(创建、读取、更新、删除)操作。 4. **Migrations**:Rails中的迁移用于管理数据库结构的变化。通过编写Ruby代码来描述数据库表的变更,然后运行迁移...

    ruby on rails 2.3.5 api html版

    通过阅读和查阅Rails 2.3.5的API文档,开发者不仅可以学习到如何在Rails环境中组织代码,还能掌握如何利用其强大的特性来提高开发效率。不过要注意,Rails框架已经发展到更高的版本,新版本可能引入了更多的改进和...

    SOA系列:开源框架Ruby on Rails

    - **集成示例**:例如,开发者可以轻松地创建一个用于管理用户的 RESTful API,通过简单的路由配置即可实现对用户数据的 CRUD(创建、读取、更新、删除)操作。 #### 七、Ruby on Rails 与 Ajax 的融合 - **Ajax**...

    深入浅出.Ruby.on.Rails

    - **MVC 架构**:深入理解 MVC(模型-视图-控制器)设计模式在 Rails 中的应用,以及如何利用这一模式来组织代码。 - **数据库交互**:Rails 使用 ActiveRecord 来处理与数据库的交互,书中将详细介绍如何使用 ...

    种使用MVC架构开发的Trello,使用Active Record进行数据库查询.zip

    Active Record是模型层的一种实现方式,它是Ruby on Rails框架中的一个重要概念,它将数据库操作封装在对象的方法中,使得数据库交互更加直观和简洁。 **视图(View)**: 视图是用户界面的部分,负责展示数据。在...

    agile web development with rails2代码

    通过这个压缩包中的源代码,你可以看到如何组织Rails项目,如何实现RESTful API,以及如何使用测试确保代码质量。此外,书中可能还涉及了数据库迁移、缓存策略、性能优化和安全实践等内容。通过深入学习和实践这些...

    Rails入门教程一(翻译).pdf

    至于视图,会讲解ERB(Embedded Ruby)模板语法,如何在HTML中嵌入Ruby代码,以及辅助方法(Helper Methods)的使用,它们能帮助开发者更好地组织和复用视图代码。 最后,教程可能会简要介绍测试(Testing),Rails...

    Rails API

    6. **辅助方法(Helper Methods)**:这些方法提供了一种组织和重用视图逻辑的方式,帮助保持视图代码的整洁。 7. ** erb模板引擎**:用于创建动态HTML页面,允许在HTML中嵌入Ruby代码。 8. **gem**:Ruby的包管理...

    Agile Web Development with Rails 2nd Edition源码

    源码中可以看到各个部分的组织结构和它们之间的通信方式。 4. **ActiveRecord**: Rails的ORM(对象关系映射)层,负责数据库操作。通过ActiveRecord,开发者可以用Ruby代码直接操作数据库,无需编写SQL语句。源码中...

    Web+开发敏捷之道源代码

    在"Web+开发敏捷之道"的源代码中,我们可以看到Ruby如何优雅地处理数据结构、类和对象,以及其强大的元编程能力。 二、Rails框架优势 Rails作为Ruby的明星框架,提供了丰富的内置功能,如MVC(模型-视图-控制器)...

    MongoDB .NET 开发指南

    1. 面向集合存储:数据以集合的形式组织,类似于关系数据库的表,但不需要预先定义模式,提供更大的灵活性。 2. 动态查询:MongoDB的查询语言强大,允许开发者编写类似面向对象的查询语句。 3. 全面索引:支持对数据...

    Agile Web Development with Rails.3rd Edition.2009

    书中会讲解如何定义模型,设置关联关系,以及执行CRUD(创建、读取、更新、删除)操作。 此外,本书还涉及到了Ajax(异步JavaScript和XML)在Rails中的应用,如何利用Unobtrusive JavaScript(UJS)实现页面的无...

    student-directory:我的第一个Ruby项目,来自制造商课程

    在Ruby编程语言中,"student-directory" 是一个基础项目,旨在帮助初学者了解如何构建一个简单的应用程序。这个项目,如其标题"我的第一个Ruby项目,来自制造商课程"所示,是针对那些正在学习如何使用Ruby的人设计的...

    freemis 基于ror框架的mis

    2. **ActiveRecord**:这是RoR中的一个ORM(对象关系映射)库,允许开发者用Ruby类来代表数据库表,通过面向对象的方式来操作数据库,简化了数据库交互。 3. **Scaffolding**:RoR提供快速原型开发工具,能自动生成...

Global site tag (gtag.js) - Google Analytics