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

Rails详细介绍(八)ActiveRecord基础(列和属性)

阅读更多

    ActiveRecord中的一个对象相当于数据库中表的一行,对象的属性对应于表的列,ActiveRecord在运行时来确定这些对应关系 。
我们的orders表可能使用下面的sql来创建:

create table orders (

id int not null auto_increment,

name varchar(100) not null,

email varchar(255) not null,

address text not null,

pay_type char(10) not null,

shipped_at datetime null,

primary key (id)

);

我们可以创建一个类来转换这个表:

 

class Order < ActiveRecord::Base

end

当我们创建了Order类,就可以访问它的属性来获取信息,下面的代码使用columns()方法,来返回一个Columns对象的数组,在这里

,我们显示了orders表中的每个列,并且显示指定字段的详细信息。

 

puts Order.columns.map { |col| col.name }

puts Order.columns_hash['shipped_at']

运行代码,会得到下面的输出:

["id", "name", "email", "address", "pay_type", "shipped_at"]

@default=nil,

@limit=nil,

@name="shipped_at",

@type=:datetime>

注意,Active Record决定了每个列的类型,在这个例子里,将shipped_at列作为datetime类型,该列的值被保存在一个ruby的Time

类型的对象中,我们可以写些代码来验证该列的类型及其内容:

order = Order.new

order.shipped_at = "2005-03-04 12:34"

puts order.shipped_at.class

puts order.shipped_at

输出为:

Time

Fri Mar 04 12:34:00 CST 2010

下面的列表展示了sql和ruby间的数据类型对应关系:

SQLType            Ruby Class     

int, integer       Fixnum                    

decimal, numeric   Float              

clob, blob, text   String                    

interval, date     Date                             
float, double      Float
char, varchar, string   String
datetime, time     Time

分享到:
评论

相关推荐

    userstamp, 这个 Rails 插件扩展ActiveRecord.zip

    userstamp, 这个 Rails 插件扩展ActiveRecord Userstamp插件( v-2.0 )概述Userstamp插件扩展了 ActiveRecord::Base,以添加对'创建者','更新程序'和'deleter'属性的自动更新。 它是基于 ActiveRecord::Timesta

    Pro ActiveRecord Databases with Ruby and Rails.pdf

    《Pro ActiveRecord Databases with Ruby and Rails》是一本针对中级到高级Ruby on Rails开发者的书籍,它不仅涵盖了ActiveRecord的基础知识,更重要的是提供了大量的高级技巧和最佳实践。对于希望深入了解...

    Apress Pro ActiveRecord Databases with Ruby and Rails.pdf

    《Pro ActiveRecord:Databases with Ruby and Rails》是一本非常实用的书籍,适合已经具备一定Ruby和Rails基础的开发者阅读。书中不仅涵盖了ActiveRecord的基础用法,还深入讲解了许多高级话题,对于希望提升自己...

    ActiveRecord简单实例_activerecord.zip

    这个简单的定义就自动为`users`表的所有列创建了对应的属性,并提供了诸如`create`, `find`, `update`等数据库操作方法。 接下来是数据库配置。在Rails应用的`config/database.yml`文件中,我们需要设置数据库连接...

    Ruby on Rails实例开发

    在模型中,我们将定义属性和关系,如`attr_accessor`或`has_many`,ActiveRecord会自动处理与数据库的交互。在控制器中,我们会定义动作(actions)来处理HTTP请求,并通过`render`或`redirect_to`方法决定响应内容...

    Rails项目源代码

    在这个项目中,`User`和`Image`模型可能会与数据库中的相应表关联,通过定义属性和关系,如`has_many :images`表示一个用户可以拥有多个图片。 5. **路由配置**: Rails的路由系统将URL映射到控制器的行动上,如`/...

    使用公钥加密保护ActiveRecord属性.zip

    "使用公钥加密保护ActiveRecord属性"的主题就是关于如何实现这一目标的实践教程。 首先,我们要理解公钥加密的概念。公钥加密,也称为非对称加密,涉及到两个密钥:公钥和私钥。公钥可以公开分享,用于加密数据;而...

    Ruby on Rails入门权威经典

    模型(Model)部分将详细介绍ActiveRecord,它是Rails用于数据库操作的 ORM(Object-Relational Mapping)库。读者会学习如何定义模型、设置属性、建立关联、以及执行CRUD(Create, Read, Update, Delete)操作。...

    RailsSpace

    同时,还将介绍ActiveRecord这一ORM工具在Rails中的使用方法。 ##### 2.3 用户注册功能实现 第四章“Registering users”详细讲解了用户注册流程的实现。这包括前端表单的设计与后端逻辑处理,如验证用户输入的...

    好用的rails 2.0 Api 文档

    每个Active Record类都代表一个数据库表,类的实例对应表中的行,类的属性对应列。Active Record提供了许多便捷的方法,如CRUD(创建、读取、更新、删除)操作,以及关联(如has_many、belongs_to等)。 **3. ...

    Castle ActiveRecord快速入门指南、ActiveRecord帮助文档

    - 提供的 `.chm` 文件是 Castle ActiveRecord 的官方帮助文档,包含了详细的功能说明、示例代码和故障排查指南,是学习和解决问题的重要资源。 通过以上介绍,你可以开始探索 Castle ActiveRecord 并将其应用于...

    RAILS2.1的中文版资料

    《RAILS2.1的中文版资料》是一份针对Ruby on Rails 2.1版本的详细介绍文档,由Carlos Brando和Marcos Tapajós共同编写,并由中国Rails社区成员翻译成中文版。该文档详细介绍了Rails 2.1版本中引入的新特性和改进之...

    Ruby on Rails入门例子

    在Rails中,我们通常使用ActiveRecord库来创建模型,通过继承`ApplicationRecord`类并定义属性和关系。 2. **View**:视图负责展示用户界面。Rails提供了ERB(Embedded Ruby)模板,允许在HTML中嵌入Ruby代码,实现...

    Ruby on Rails源代码

    Ruby on Rails(简称Rails)是一种基于Ruby编程语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在提高开发效率和可读性。Rails的哲学强调“约定优于配置”和“Don't Repeat Yourself”(DRY...

    Agile Web Development with Rails中文版 3rd Edition

    本章节详细介绍了Rails应用的基本架构,包括三个核心组件:模型(Model)、视图(View)和控制器(Controller),即MVC模式。 **2.1 模型、视图与控制器** - **模型(Model)**:负责处理应用数据逻辑的部分,通常...

    Ruby on Rails Tutorial Learn Rails by Example 的源代码

    1. **Ruby on Rails框架基础**:Rails是一个基于Ruby语言的开源Web应用框架,遵循MVC(模型-视图-控制器)架构模式。在`sample_app`中,你可以看到如何组织代码以符合Rails的约定,如目录结构、控制器、模型和视图的...

    activerecord-session_store, 从 Rails 中提取的记录存储的活动会话.zip

    activerecord-session_store, 从 Rails 中提取的记录存储的活动会话 Active Record 会话存储由 Active Record 类支持的会话存储。 提供了默认类,但是任何对 Active Record 会话类的对象鸭类型都有文本 session_id ...

    Rails for Zombies

    而数据库表的每一行对应于ActiveRecord中的一个对象,对象的属性由数据库表的列决定。 在CRUD操作中,"Retrieve"操作用于读取数据。在Rails中,可以通过`Model.find(id)`方法来检索特定的记录。如果要获取特定字段...

    Ruby+for+Rails

    例如,`rails generate model Book title:string author:string`将创建一个`Book`模型,包含`title`和`author`属性。 6. **数据库迁移(Migrations)** Rails使用迁移来管理数据库结构的变化。`rails generate ...

    Ruby on Rails中文指南

    14. **AJAX和Unobtrusive JavaScript (UJS)**:Rails支持无侵入式JavaScript,通过数据属性和事件监听,使页面的部分内容能够异步更新,增强用户体验。 15. **ActiveJob**:Rails 4.2引入的ActiveJob是一个抽象层,...

Global site tag (gtag.js) - Google Analytics