ActiveRecord

Ruby on Rails,使用destroy方法删除ActiveRecord对象

在之前的《Ruby on Rails,使用new和create创建ActiveRecord对象及他们之间的区别》中学习到,通过new和create命令创建及持久化ActiveRecord对象;《Ruby on Rails,使用save和update_attributes更新持久化的ActiveRecord对象》中,我们知道通过save和update命令更新一

2015-08-10 15:41:17

Castle ActiveRecord学习实践(10)——使用多数据库

我们在开发中会遇到这样的情况,创建的ActiveRecord类在不同的数据库中,本文来看看Castle ActiveRecord如何处理这种情况。 比如我们有 DB1数据库,里面包含一个Articles表,DB2数据库,里面包含一个AppInfo表 首先,我们创建抽象基类   1: public abstract class D

2015-07-15 10:41:54

理解ruby on rails中的ActiveRecord::Relation

ActiveRecord::Relation是rails3中添加的。rails2中的finders, named_scope, with_scope 等用法,在rails3统一为一种Relation用法。 以下是返回ActiveRecord::Relation的方法: bind create_with distinct eager_load

2015-07-13 11:31:42

Ruby: Calling Ruby's ActiveRecord from Java Using the Bean Scripting Framework

JRuby: Calling Ruby\'s ActiveRecord from Java Using the Bean Scripting FrameworkRuby: Calling Ruby\'s ActiveRecord from Java Using the Bean Scripting FrameworkPublished: 25 Jul 200

2015-07-13 11:30:59

Ruby on rails开发从头来(四十九)- ActiveRecord基础(行数和再加载数据)

    Active Record提供了两个方法来获取符合条件的记录的条数:count()和count_by_sql()。例如: c1 = Order.count c2 = Order.count([\"name = ?\", \"Dave Thomas\"]) c3 = LineItem.count_by_sql(

2015-07-13 11:26:31

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

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

2015-07-13 11:25:48

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

   如果在一个model对象中有一个名为balance的属性,你可以通过索引操作符来获取该属性的值,你可以使用一个字符串或者标记,在这里我们使用标记,例如: account[:balance] #=> 获取值 account[:balance] = 0.0 #=> 设置值 但是这种常见的代码是不提倡的,更好的

2015-07-13 11:25:47

Ruby on rails开发从头来(四十二)- ActiveRecord基础(主键和ID)

   也许你已经注意到了,在我们前面的代码中,数据库定义里都使用了一个integer型的字段id作为主键,这是Active Record的一个约定。     或许你要问,为什么不用订单编号或者某个有意义的列来作为主键呢?使用id作为主键有一个很重要的原因,就是如果使用具有内在格式的主键的话,随着时

2015-07-13 11:25:47

Ruby on rails开发从头来(四十五)- ActiveRecord基础(读取记录)

     读取记录包括指定那些特定的数据是你感兴趣的,你给Active Record指定标准,Active Record再返回给你一些对象,其中包含了符合条件的记录的数据。     在一个表中检索数据的最简单的办法就是指定主键,任何一个Model都支持find()方法,该方法支持一个或多

2015-07-13 11:25:46

Ruby on rails开发从头来(四十六)- ActiveRecord基础(SQL和Active Record)

     想象一下Active Record是如何处理SQL的,我们来看看find方法的:conditions参数,调用的时候像这样:find(:all,:conditions=>…),这里的:conditions参数决定了find方法将返回哪些记录,它相当于Sql语句的where部分,例如,要获取所

2015-07-13 11:25:45

Ruby on rails开发从头来(四十七)- ActiveRecord基础(强大的find方法)

     现在我们知道如何指定条件,现在我们来看看find方法支持的一些其他设置。     首先,理解find(:first,…)方法是非常重要的,该方法在同样的conditions设置下,和find(:all,…)方法生成同样的sql语句,不同之处仅在于只返回一

2015-07-13 11:25:45

Ruby on rails开发从头来(五十)- ActiveRecord基础(更新记录)

      前面了解了检索的方法,这次来看看Active Record怎样更新数据库中的记录。     如果你有一个Active Record对象(或许对应于order表),你可以通过调用save方法将它写道数据库中去,如果这个对象是先前从数据库中读取出来的,save方法将会更

2015-07-13 11:25:43

Ruby on rails开发从头来(五十一)- ActiveRecord基础(并发处理)

在学习Rails中的并发处理的处理前,我们先简单了解下并发处理的概念。 在有多个处理同时访问同一个数据库的应用程序中,可能会出现这样的情况,因为一个处理更新了数据库中的行,而使得另一个处理中持有的数据变得陈旧了。例如,A和B先后从数据库中提取了相同的数据,并都做了修改,这时B先将自己的修改更新会数据库,稍后,A将自己的修改更新回数据库,这时将会覆盖B所作的


Ruby on rails开发从头来(五十二)- ActiveRecord基础(删除记录)

    Active Record提供了两种方式进行删除操作。首先,有两个类级别的方法,delete和delete_all,这两个操作处在数据库层面上,delete()方法接收一个或一组和数据库对应的id,delete_all()方法删除所有符合指定条件的记录,如果没有指定条件,就会删除所有的记录。方法的返回值和具体的数据库适配

2015-07-13 11:25:42

Ruby on rails开发从头来(五十三)- ActiveRecord基础(表关联)

很多程序使用的数据库都包含有多个表,而且通常一些表之间还有关联关系,订单常含有多个条目,而一个条目又关联到一种商品,一个商品可能又属于多个商品分类,一个商品分类里又包含有多个不同的商品。 在数据库中,这些关联表现为使用主键值把表关联起来,也就是外键,但是这属于底层的范畴,我们需要处理Model对象间的关联,而不是数据库中的列和键。如果一个订单含有多个条目,

2015-07-13 11:25:41

Ruby on rails开发从头来(五十四)- ActiveRecord基础(指定关联关系)

Rails支持三种表间关联关系,一对一,一对多,多对多,你需要在Model中加入声明来标识这些关联:has_one,has_many,belongs_to,has_and_belongs_to_many。 一对一关联关系可能存在于象订单和发票这样的关系,一个订单只能有一个发票,在Rails中,我们这样指明: class Order < Active

2015-07-13 11:25:41

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

     在Rails中多对多关联通过在关联表对应的类中声明has_and_belongs_to_many来实现。 在数据库中,多对多关联使用中间表来实现,表中包括关联表的主键,Active Record假定这个中间表的名字是由关联表的名字根据字母的顺序串联起来得到的。例如,关联表为categories和produc

2015-07-13 11:25:41

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

      一对多关联可以使我们表示一组对象,例如,一个order可以包含有任意多个line item,在数据库中,所有的line item记录都通过外键关联到特定的order。     在Active Record中,通过在父对象中的has_many来定义到子对象的关联,在子

2015-07-13 11:23:46

Ruby on rails开发从头来(四十)- ActiveRecord基础(Boolean属性)

一些数据库支持boolean类型,而另一些则不支持,这使得Active Record要抽象boolean类型变得困难。例如,如果数据库不支持boolean类型,有的开发者使用char(1)来替代,而内容使用“t”和“f”来表示true和false,而另外一些开发者使用integer类型,0是false,1是tr

2015-07-13 11:22:15

Ruby on rails开发从头来(四十一)- ActiveRecord基础(存储结构化数据)

  有时,能够在某个属性中直接存储任意的ruby对象是很方便的,一种办法就是Active Record支持序列化,将一个ruby对象变为一个YMAL字符串,并且将这个字符串存储到属性对应的数据库字段中。在数据库定义中,这个字段必须为text类型。     因为Active Record将数据库中的Char型和text

2015-07-13 11:22:15