`
wqy159
  • 浏览: 56378 次
  • 性别: Icon_minigender_2
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

让ActiveRecord更加active

阅读更多

网站:JavaEye 作者:rainchen 发表时间: 2007-08-30 19:42 此文章来自于 http://www.iteye.com
声明:本文系JavaEye网站原创文章,未经JavaEye网站或者作者本人书面许可,任何其他网站严禁擅自发表本文,否则必将追究法律责任!
原文链接: http://www.iteye.com/topic/118466

广告语:你觉得Rails现在的ActiveRecord还不够活跃、还不够DSL吗?想让它更有抱负吗?那么你需要Ambition,马上装上这颗“野心”,让数据来的更猛烈些。

使用了本产品,你将可以:
User.first
"SELECT * FROM users LIMIT 1"

User.select { |m| m.name != 'macgyver' }
"SELECT * FROM users WHERE users.`name` <> 'macgyver'"

User.select { |u| u.email =~ /chris/ }.first
"SELECT * FROM users WHERE (users.`email` REGEXP 'chris') LIMIT 1"

User.select { |u| u.karma > 20 }.sort_by(&:karma).first(5)
"SELECT * FROM users WHERE (users.`karma` > 20)
ORDER BY users.karma LIMIT 5"

User.select { |u| u.email =~ 'ch%' }.size
"SELECT count(*) AS count_all FROM users
WHERE (users.`email` LIKE 'ch%')"

User.sort_by { |u| [ u.email, -u.created_at ] }
"SELECT * FROM users ORDER BY users.email, users.created_at DESC"

User.detect { |u| u.email =~ 'chris%' && u.profile.blog == 'Err' }
"SELECT users.`id` AS t0_r0 ... FROM users
LEFT OUTER JOIN profiles ON profiles.user_id = users.id
WHERE ((users.`email` LIKE 'chris%' AND profiles.blog = 'Err'))
LIMIT 1"

ORM?ROM?!
>> user = User.select { |u| u.name == 'Dio' }
=> (Query object: call #to_sql or #to_hash to inspect...)
>> user.to_sql
=> "SELECT * FROM users WHERE users.`name` = 'Dio'"

还担心从C中取到的数据而在V中根本没有用上而觉得浪费感情吗?
class BandsController < ApplicationController
def index
@bands = Band.sort_by(&:name)
end
end

现在 @bands 不再是一个数据集合在战斗,只有当真正访问到里面的数据条目时它才会召唤db engine附身,如:

Rocktastic Bands



    <% @bands.each do |band| %>
  • <%= band %>

  • <% end %>

更过份的是,你的缓存终于可以放开手脚可以大显身手了:

Rocktastic Bands


<% cache do %>


    <% @bands.each do |band| %>
  • <%= band %>

  • <% end %>

<% end %>

还等什么,赶紧打开你的console通过gem来订购吧:
http://projects.require.errtheblog.com/browser/ambition/README

更多详情请敲打我们的24小时热线URL:http://errtheblog.com/post/10722




《 让ActiveRecord更加active 》 的评论也很精彩,欢迎您也添加评论。查看详细 >>





JavaEye推荐
上海乐福狗信息技术有限公司:诚聘技术经理和开发工程师
免费下载IBM社区版软件--它基于开放的标准,支持广泛的开发类型,让您的开发高效自主!
京沪穗蓉四地免费注册,SOA技术高手汇聚交锋.
上海:优秀公司德比:高薪诚聘 资深Java工程师
广州:优易公司:诚聘Java工程师,开发经理
上海:尤恩斯国际集团:诚聘开发工程师
北京:优秀公司NHNChina招聘:WEB开发,系统管理,JAVA开发, DBA


分享到:
评论

相关推荐

    C# Castle.ActiveRecord CS源码示例教程.zip

    《C# Castle.ActiveRecord 源码示例教程》 Castle.ActiveRecord 是一款基于 C# 的轻量级对象关系映射(ORM)框架,它为 .NET 开发者提供了简化数据库交互的方式。这个教程主要围绕如何使用 Castle.ActiveRecord 在...

    state_machines-activerecord, StateMachines Active Record 集成.zip

    state_machines-activerecord, StateMachines Active Record 集成 StateMachines Active Record 集成Active Record 4.1 集成添加对数据库事务的支持,自动保存记录,命名范围,验证错误。依赖项Active Record 4.1 ...

    Java敏捷持久层-ROR-ActiveRecord持久层框架的Java实现

    Java 敏捷持久层技术是现代软件开发中的一个重要组成部分,它简化了数据库操作,使得开发者可以更加专注于业务逻辑,而不是繁琐的数据访问代码。在Java世界里,虽然Hibernate和JPA等框架已经非常成熟,但Ruby on ...

    Pro ActiveRecord Databases

    Apress Pro ActiveRecord Databases with Ruby and Rails &lt;br&gt;Active Record has primarily been covered as a subsection, or maybe as a chapter or two, within a larger scoped book generally about the ...

    Patron-ActiveRecord:JAVA中的Active Record持久性模式示例

    "Patron-ActiveRecord" 这个标题指的是一个项目或者库,它在JAVA中实现了Active Record持久性模式。Active Record是面向对象数据库映射(Object-Relational Mapping, ORM)的一种实现方式,它将数据库操作与业务对象...

    active_record_migrations:ActiveRecord独立迁移(适用于非Rails项目)

    ActiveRecord独立迁移 允许您在非Rails项目中使用ActiveRecord迁移。 安装 将此行添加到应用程序的Gemfile中(如果没有,请运行bundle init ): gem 'active_record_migrations' gem 'sqlite3' # or 'pg', 'mysql...

    ActiveRecord(Ruby)--中文

    Active Record(活动记录),是一种领域模型模式,特点是一个模型类对应关系型数据库中的一个表,而模型类的一个实例对应表中的一行记录。

    Castle ActiveRecord 最全的入门CHM帮助文档

    Castle ActiveRecord 实现了这一模式,让开发者可以更专注于业务逻辑,而不是数据存储细节。 2. **NHibernate 基础**:Castle ActiveRecord 建立在 NHibernate 上,后者是一个流行的.NET ORM(对象关系映射)工具。...

    active_record-acts_as, 模拟activerecord模型的多表继承.zip

    active_record-acts_as, 模拟activerecord模型的多表继承 插件开发已经移动这个项目的积极发展已经转移到了的krautcomputing fork 。 请在那里报告问题并打开 PRs ! ActiveRecord::ActsAs这是对 acts_as_relation的...

    active_record-events:管理ActiveRecord模型中的时间戳

    gem 'active_record-events' 使用Bundler安装gem: $ bundle install或通过运行以下命令手动执行: $ gem install active_record-events用法记录时间戳以标记对象发生了事件是处理ActiveRecord模型时的常见做法。...

    Python-ActiveRecord类似Django的查询嵌套式加载和美化reprforSQLAlchemy

    在Python的ORM(对象关系映射)框架中,SQLAlchemy是一个强大的库,它允许开发者以面向对象的方式操作数据库。在本主题中,我们将深入探讨如何使用...通过这些技巧,你可以更加高效地使用SQLAlchemy进行数据库操作。

    active_record_shards:支持分片数据库和ActiveRecord副本

    安装$ gem install active_record_shards并确保以某种方式要求“ active_record_shards”。配置将副本和分片配置添加到config / database.yml: production : adapter : mysql encoding : utf8 database : my_app_...

    Castle ActiveRecord 手册

    Castle ActiveRecord 是一个面向对象的持久化框架,它基于著名的设计模式——Active Record,该模式源自Ruby on Rails。这个手册是专为那些想要在.NET环境中利用Castle ActiveRecord进行数据库操作的学习者准备的。...

    ASP实现ActiveRecord数据查询更新 v1.0

    ASP实现ActiveRecord数据查询更新引言:用过 PHP框架 ThinkPHP 或 CI框架的同学,都知道这些框架自带的数据查询 Active Record 用于查询数据和更新数据想到方便,不单它们,很多PHP框架都支持 Active Record,省去了...

    occams-record:ActiveRecord缺少高效查询API

    继续使用ActiveRecord的查询生成器,但让Occams接管它们的运行,急切的加载和原始SQL调用。 ActiveRecord无法使用下面的示例,但是OccamsRecord使它们变得微不足道。 (稍后将显示更多完整的示例,但是这些示例会...

    ActiveObject.pdf

    在Java领域,ActiveObject是一种受到Ruby on Rails框架中ActiveRecord启发而设计的轻量级对象关系映射(ORM)工具。它的核心理念是“约定优于配置”(Convention Over Configuration),这意味着开发者在开发过程中...

    Pro Active Record. Databases with Ruby and Rails

    ### Pro Active Record: ...通过对本书的学习,开发者可以更加熟练地掌握Active Record的核心技术和最佳实践,从而更高效地进行Web应用开发。无论是对于个人技能的提升还是项目实践的应用,这本书都是一份宝贵的资源。

    i18n-active_record:I18n ActiveRecord后端

    I18n ::后端:: ActiveRecord 该存储库包含I18n ActiveRecord后端和从提取的支持代码。 它与Rails 3、4、5和6完全兼容。 安装 对于Bundler,请将以下内容放入您的Gemfile中: gem 'i18n-active_record', :require =...

    Ruby-ActiveRecordTurntable是一个数据库分片的ActiveRecord扩展

    **Ruby-ActiveRecord Turntable:数据库分片的ActiveRecord扩展** 在现代的Web应用程序中,随着数据量的增长,单个数据库可能无法满足高效处理和存储的需求。这时,数据库分片技术应运而生,它将数据分布在多个...

    active-storage:用于查询 localStorage 的类似 ActiveRecord 的接口

    您现在可以访问您最喜欢的 ActiveRecord 方法,由 localStorage 提供支持!.new var p = Post . new ( { name : "Jesse" } ) ;.create var p = Post . create ( { name : "Jesse" } ) ;#save p . save ( ) ;.find ...

Global site tag (gtag.js) - Google Analytics