Ruby on rails开发从头来(三十九)- ActiveRecord基础(访问属性)

如果在一个model对象中有一个名为balance的属性,你可以通过索引操作符来获取该属性的值,你可以使用一个字符串或者标记,在这里我们使用标记,例如:

account[:balance] #=> 获取值

account[:balance] = 0.0 #=> 设置值

但是这种常见的代码是不提倡的,更好的是这样,利用ruby的访问方法:

account.balance #=> 获取值

account.balance = 0.0 #=>设置值

在这里,我们使用了两种方法来获取属性的值,Active Record会进行适当的类型转换,比如,如果数据库中的列是时间戳(TimeStamp),那么,我们将会得到一个Time对象,如果你想得到属性的原始的值,添加_before_type_cast到访问方法的最后,例如:

account.balance_before_type_cast #=> "123.4", a string

account.release_date_before_type_cast #=> "20050301"

最后,也可以使用Model自己的私有方法read_attribute和write_attribute,这两个方法使用属性名作为参数。

时间: 2024-11-01 22:08:14

Ruby on rails开发从头来(三十九)- ActiveRecord基础(访问属性)的相关文章

Ruby on rails开发从头来(windows)(三)-实现页面间的跳转

在上篇随笔Ruby on rails开发从头来(windows)(二)-创建项目和第一个Hello world 中,我们介绍了如何使用InstantRails创建一个项目和编写一个简单的Helloworld页面,今天在上次的基础上,写一个简单的页面跳转. 1.将appcontrollers目录下的say_controller.rb文件的内容改成下面这样: class SayController < ApplicationController def Hello @time = Time.now

Ruby on rails开发从头来(windows)(四)-第一个添删查改例子

在上一篇Ruby on rails开发从头来(windows)(三)-实现页面间的跳转中,我们创建了两个页面来进行跳转迁移,这次我们来写一个单表维护的添删查改的例子. 1.这次我们重新创建一个项目depot,按照上篇中的步骤,创建depot项目. 2.创建数据库. 你可以使用rails的命令行,通过mysql创建,先定位到depot目录,使用命令: depot> mysql -u root –p 密码为空,连接mysql后执行下面的命令: mysql> create database depo

Ruby on rails开发从头来(windows)(一)

使用InstantRails快速搭建Ruby On Rails开发环境 一直对Ruby on Rails抱有很大的兴趣,想看看这个被很多人称道的东西,但是一直在做windows下的开发,对于Ruby on Rails的开发环境搭建还是很头疼,这也是一直没有开始研究Ruby on rails的原因.刚刚在javaeye看到了InstantRails,一个All In One的套件,可以帮助你快速搭建Ruby On Rails开发环境,就立即下了一个试了试,还好,比较顺,起码可以跑起来自带的例子了.

Ruby on rails开发从头来(windows)(三十二)- Rails的配置文件

Rails的运行时配置是由config目录下的文件来控制的. 1.运行时环境(Runtime environment) 当开发者编写代码时,需求是多中多样的.在开发中你可能会需要很多的登录,加载变化过的代码.在测试时,你需要各个系统之间是隔离开的.在发布之前,你可能需要进行性能优化,并且时用户远离bug. 为了支持这一切,Rials有运行时配置的概念.每一个环境都拥有自己的一组配置,可以在不同的环境中运行同一个应用程序. 切换运行环境可以使我们不用修改代码就可以从开发切换到测试再切换到发布.怎样

Ruby on rails开发从头来(windows)(三十)- NetBeans IDE

到现在,应该告一段落了,总共有二十九篇随笔,干脆凑个整数,再写写IDE环境吧.前面所有的代码都是我用ruby自带的编辑器SciTE编写的,很不方便,随着Rails的发展,目前也有很多IDE推出来,刚刚看到NetBeans推出的6.0rc版,提供了单独的Rails开发环境,这次来简单尝试下. 1.第一步当然是下载NetBeans的6.0rc版,在http://sunmicro.vo.llnwd.net/c1/netbeans/6.0/final/下载. 2.下载后一路默认安装,完成后启动NetBe

Ruby on rails开发从头来(三十八)- ActiveRecord基础(列和属性)

ActiveRecord中的一个对象相当于数据库中表的一行,对象的属性对应于表的列,也许你会注意到我们的Order类没有提及关于orders表的任何东西,这是因为ActiveRecord在运行时来确定这些对应关系,Active Record将数据库中的模式反应到类中. 我们的orders表可能使用下面的sql来创建: create table orders ( id int not null auto_increment, name varchar(100) not null, email va

Ruby on rails开发从头来(windows)(三十六)- 调试技巧

这次我们来看看一些关于调试的小提示. 首先,而且也是最重要的就是,编写测试代码,在Rails里编写单元测试和功能测试都很简单,使用它们,可以减低bug发生率,也可以避免在你从前的代码中突然出现bug. 测试代码告诉你哪些东西能够工作,哪些不能,并且,测试代码帮助你隔离那些有问题的代码,因为有时候bug并非很快地表现出来. 如果问题发生在一个Model中,我们可以使用脚本script/console来模拟一个irb对话,在其中进行跟踪,例如下面这样: Z:\study\ruby\InstantRa

Ruby on rails开发从头来(五十六)- ActiveRecord基础(一对多关联关系)

一对多关联可以使我们表示一组对象,例如,一个order可以包含有任意多个line item,在数据库中,所有的line item记录都通过外键关联到特定的order. 在Active Record中,通过在父对象中的has_many来定义到子对象的关联,在子对象中使用belongs_to来指定父对象.我们已经在上一篇中了解了belongs_to声明,实际上,在一对多的情况下,和一对一是相同的,所以我们来了解has_many声明. 开发从头来(五十六)- ActiveRecord基础(一对多关联关

Ruby on rails开发从头来(windows)(十八)-自动生成文档

到此,我们这个购物车的实现就完成了,下面我们可以利用ruby里的Rdoc来给我们的程序生成文档,和dotnet,java,python等一样,Rdoc可以把我们代码里类和方法声明前面的注释提取出来生成文档. 对于我们的depot程序,我们在rails的命令行里运行rake appdoc命令,如图: 开发从头来(windows)(十八)-自动生成文档-ruby on rails"> 完成以后,可以在depot\doc目录下看到刚才生成的文档,打开index.html,看到下面的内容:

Ruby on rails开发从头来(windows)(十五)-添加用户

从这篇开始,我们来实现一组用户管理的功能,首先是添加用户. 1.首先,我们要创建一个表保存用户信息,并且生成一个对应的model. 创建表的脚本,在phpAdmin里执行就可以了: create table users ( id int not null auto_increment, name varchar(100) not null, hashed_password char(40) null, primary key (id) ) 然后在命令行生成User的model,如图: 开发从头来