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 Userstamp插件( v-2.0 )概述Userstamp插件扩展了 ActiveRecord::Base,以添加对'创建者','更新程序'和'deleter'属性的自动更新。 它是基于 ActiveRecord::Timesta
《Pro ActiveRecord Databases with Ruby and Rails》是一本针对中级到高级Ruby on Rails开发者的书籍,它不仅涵盖了ActiveRecord的基础知识,更重要的是提供了大量的高级技巧和最佳实践。对于希望深入了解...
《Pro ActiveRecord:Databases with Ruby and Rails》是一本非常实用的书籍,适合已经具备一定Ruby和Rails基础的开发者阅读。书中不仅涵盖了ActiveRecord的基础用法,还深入讲解了许多高级话题,对于希望提升自己...
这个简单的定义就自动为`users`表的所有列创建了对应的属性,并提供了诸如`create`, `find`, `update`等数据库操作方法。 接下来是数据库配置。在Rails应用的`config/database.yml`文件中,我们需要设置数据库连接...
在模型中,我们将定义属性和关系,如`attr_accessor`或`has_many`,ActiveRecord会自动处理与数据库的交互。在控制器中,我们会定义动作(actions)来处理HTTP请求,并通过`render`或`redirect_to`方法决定响应内容...
在这个项目中,`User`和`Image`模型可能会与数据库中的相应表关联,通过定义属性和关系,如`has_many :images`表示一个用户可以拥有多个图片。 5. **路由配置**: Rails的路由系统将URL映射到控制器的行动上,如`/...
"使用公钥加密保护ActiveRecord属性"的主题就是关于如何实现这一目标的实践教程。 首先,我们要理解公钥加密的概念。公钥加密,也称为非对称加密,涉及到两个密钥:公钥和私钥。公钥可以公开分享,用于加密数据;而...
模型(Model)部分将详细介绍ActiveRecord,它是Rails用于数据库操作的 ORM(Object-Relational Mapping)库。读者会学习如何定义模型、设置属性、建立关联、以及执行CRUD(Create, Read, Update, Delete)操作。...
同时,还将介绍ActiveRecord这一ORM工具在Rails中的使用方法。 ##### 2.3 用户注册功能实现 第四章“Registering users”详细讲解了用户注册流程的实现。这包括前端表单的设计与后端逻辑处理,如验证用户输入的...
每个Active Record类都代表一个数据库表,类的实例对应表中的行,类的属性对应列。Active Record提供了许多便捷的方法,如CRUD(创建、读取、更新、删除)操作,以及关联(如has_many、belongs_to等)。 **3. ...
- 提供的 `.chm` 文件是 Castle ActiveRecord 的官方帮助文档,包含了详细的功能说明、示例代码和故障排查指南,是学习和解决问题的重要资源。 通过以上介绍,你可以开始探索 Castle ActiveRecord 并将其应用于...
《RAILS2.1的中文版资料》是一份针对Ruby on Rails 2.1版本的详细介绍文档,由Carlos Brando和Marcos Tapajós共同编写,并由中国Rails社区成员翻译成中文版。该文档详细介绍了Rails 2.1版本中引入的新特性和改进之...
在Rails中,我们通常使用ActiveRecord库来创建模型,通过继承`ApplicationRecord`类并定义属性和关系。 2. **View**:视图负责展示用户界面。Rails提供了ERB(Embedded Ruby)模板,允许在HTML中嵌入Ruby代码,实现...
Ruby on Rails(简称Rails)是一种基于Ruby编程语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在提高开发效率和可读性。Rails的哲学强调“约定优于配置”和“Don't Repeat Yourself”(DRY...
本章节详细介绍了Rails应用的基本架构,包括三个核心组件:模型(Model)、视图(View)和控制器(Controller),即MVC模式。 **2.1 模型、视图与控制器** - **模型(Model)**:负责处理应用数据逻辑的部分,通常...
1. **Ruby on Rails框架基础**:Rails是一个基于Ruby语言的开源Web应用框架,遵循MVC(模型-视图-控制器)架构模式。在`sample_app`中,你可以看到如何组织代码以符合Rails的约定,如目录结构、控制器、模型和视图的...
activerecord-session_store, 从 Rails 中提取的记录存储的活动会话 Active Record 会话存储由 Active Record 类支持的会话存储。 提供了默认类,但是任何对 Active Record 会话类的对象鸭类型都有文本 session_id ...
而数据库表的每一行对应于ActiveRecord中的一个对象,对象的属性由数据库表的列决定。 在CRUD操作中,"Retrieve"操作用于读取数据。在Rails中,可以通过`Model.find(id)`方法来检索特定的记录。如果要获取特定字段...
例如,`rails generate model Book title:string author:string`将创建一个`Book`模型,包含`title`和`author`属性。 6. **数据库迁移(Migrations)** Rails使用迁移来管理数据库结构的变化。`rails generate ...
14. **AJAX和Unobtrusive JavaScript (UJS)**:Rails支持无侵入式JavaScript,通过数据属性和事件监听,使页面的部分内容能够异步更新,增强用户体验。 15. **ActiveJob**:Rails 4.2引入的ActiveJob是一个抽象层,...