乐观锁默认是打开的,当表中有lock_version字段时对该表使用乐观锁控制。
使用ActiveRecord::Base.lock_optimistically = false关闭乐观锁。
有两种删除操作delete和destory。区别在于delete不会执行回调和验证函数,destory则会调用。通常建议使用destory,以保证数据的一致性。
has_one关联会自动更新,belongs_to则不会。当赋一个新的对象给has_one关联时,原有对象的外键被置为null。自动更新时即使失败也不会抛出异常,所以提倡使用a.save! b.a = a的形式更新数据库。
ruby 代码
- class User < ActiveRecord::Base
- has_and_belongs_to_many :articles
- def read_article(article)
- articles.push_with_attributes(article, :read_at => Time.now)
- end
-
- end
ruby 代码
-
- for post in Post.find(:all, :conditions => "posts.title like '%ruby%'",
- :include => [:author, :comments])
-
- end
计数器counter,在父表中添加***_count int default 0字段,并在belongs_to中指定:counter_cache = true。但是在手动添加子表中的数据时counter不会自动更新。
ruby 代码
- class LineItem < ActiveRecord::Base
- true
- belongs_to :product, :counter_cache =>
- end
-
-
- product = Product.create(:title => "Programming Ruby",
- :date_available => Time.now)
- line_item = LineItem.new
- line_item.product = product
- line_item.save
- "In memory size = #{product.line_items.size}"
- puts
- puts "Refreshed size = #{product.line_items(:refresh).size}"
-
-
-
-
-
- product = Product.create(:title => "Programming Ruby",
- :date_available => Time.now)
- product.line_items.create
- puts
- "In memory size = #{product.line_items.size}"
- puts "Refreshed size = #{product.line_items(:refresh).size}"
分享到:
相关推荐
《Pro Active Record: Databases with Ruby and Rails》不仅为初学者提供了一个全面的学习框架,也为有一定基础的开发者提供了深入的技术指导。通过对本书的学习,开发者可以更加熟练地掌握Active Record的核心技术...
Active Record version 3.2.12 Action Pack version 3.2.12 Active Resource version 3.2.12 Action Mailer version 3.2.12 Active Support version 3.2.12 Middleware ActionDispatch::Static Rack::Lock # ...
SwiftCop 是一个灵感来源于 Ruby on Rails (ROR) 中的 Active Record 的表单验证工具,专为 Swift 开发者设计。在 ROR 中,Active Record 提供了一种强大的方式来处理模型的数据验证,使得开发者可以方便地定义和...
2. Active Record查询接口:提供了丰富的查询语法,如链式查询和条件查询。 3. Testing:Rails内置测试框架,包括Unit Tests、Integration Tests和Functional Tests,确保代码质量。 4. Asset Pipeline:管理并优化...
在Ror块中,不仅有常规的残差学习,还有更高层次的残差学习,即残差学习的残差。这种多层次的结构使得网络能更细致地理解特征,并且有助于减少过拟合,提高模型的泛化能力。 **CIFAR-10和CIFAR-100数据集** CIFAR-...
RoR(Ruby on Rails)是一种流行的开源Web开发框架,以其高效和简洁的代码著称。然而,随着网站规模的增长,性能优化成为...通过学习和实践这些经验,开发者可以更好地应对RoR性能挑战,创建出更健壮、高效的Web应用。
Apress Pro ActiveRecord Databases with Ruby and Rails <br>Active Record has primarily been covered as a subsection, or maybe as a chapter or two, within a larger scoped book generally about the ...
在本篇"ror培训第4天 -model1"中,我们聚焦于Model中的Active Record,这是一个强大的对象关系映射(ORM)工具,使得开发者可以使用Ruby语言来操作数据库,而无需直接编写SQL语句。 Active Record的迁移...
在本篇ROR(Ruby on Rails)学习笔记中,我们将深入探讨如何在Windows XP操作系统上进行环境的安装和配置。Ruby on Rails是一个流行的开源Web应用框架,它基于Ruby编程语言,以其“DRY”(Don't Repeat Yourself)...
在提供的压缩包文件中,我们可以看到"Ruby语言中文教程",这暗示了资源可能包含了关于Ruby语言的基础知识和进阶内容,对于学习RoR至关重要。Ruby是RoR的基础,理解其语法和特性对于掌握RoR框架极其关键。 **Ruby...
在这个选题方向中,我们主要探讨的是与RoR相关的源代码分析和学习。源代码是理解任何编程语言或框架工作原理的关键,对于RoR来说也不例外。 在深入源代码之前,我们需要了解RoR的一些核心概念。如ActiveRecord,它...
NULL 博文链接:https://xuxiangpan888.iteye.com/blog/266696
"ror实例"可能指的是在学习或实践中,通过创建一个具体的Rails应用程序来理解和掌握RoR的工作原理和最佳实践。 在Ruby on Rails中,重要知识点包括: 1. **Gemfile与Gemfile.lock**:项目中的Gemfile用于指定项目...
在Ruby on Rails(ROR)开发环境中,安装和配置正确的依赖包是至关重要的。这个压缩包包含了一系列用于ROR框架的基础组件,但不包括Ruby本身。让我们深入了解一下这些包的作用和重要性。 首先,`actionpack`是Rails...
基于RoR的博客系统,代码风格简单清晰,前后太完善,适合初学者。
《机遇ROR的图书管理系统》是一份以Ruby on Rails(简称ROR)技术为核心,旨在构建高效、便捷的图书管理解决方案的学习资料。Ruby on Rails,是基于Ruby编程语言的开源Web应用框架,它遵循MVC(Model-View-...
【标题】"learnRoR:艰难地学习RoR"揭示了这个项目是关于学习Ruby on Rails(RoR)框架的个人历程。RoR,或Rails,是由David Heinemeier Hansson开发的一个开源Web应用程序框架,它完全用Ruby编程语言编写。Ruby是一...
标题中的“RoR中文解决方案”指的是Ruby on Rails(简称RoR)的一个针对中文环境的解决方案。Ruby on Rails是一个开源的Web应用程序框架,它遵循...对于学习和使用RoR的中文开发者来说,这是一个非常实用的资源集合。
2. Active Record:RoR的Active Record是ORM(对象关系映射)库,它使得数据库操作变得简单。在这个博客中,Active Record被用来定义数据模型,并提供了与数据库交互的方法,如CRUD(创建、读取、更新和删除)操作。...