`
bellstar
  • 浏览: 150956 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

activerecord查询joins选项使用范例

阅读更多
示例相关需求: 在处方列表中显示病人姓名(处方关联到就诊记录,就诊记录关联到病人)
class Prescription < ActiveRecord::Base
  belongs_to :patient_case_detail
 has_one :patient_case, :through => :patient_case_detail
end

Prescription.find(:first, :joins => [:patient_case_detail => :patient_case], :select => "prescriptions.*,patient_cases.patient_name")

在CONSOLE下运行返回的是Presction对象,是看不到patient_name的
#<Prescription id: 1, patient_case_detail_id: 1, subject: "桍", created_person: 2, department_id: nil, flag: 0, description: "sdfsdfASDFASDF ", created_at: "2009-12-16 08:35:00", updated_at: "2009-12-18 07:00:36">

以JSON打印出来就能看到了
Prescription.find(:first, :joins => [:patient_case_detail => :patient_case], :select => "prescriptions.*,patient_cases.patient_name").to_json

"{\"prescription\":{\"updated_at\":\"2009-12-18T15:00:36+08:00\",\"patient_case_detail_id\":1,\"subject\":\"\\u684d\",\"patient_name\":\"\\u674e\\u900d\\u9065\",\"id\":1,\"flag\":0,\"created_person\":2,\"description\":\"sdfsdfASDFASDF \",\"department_id\":null,\"created_at\":\"2009-12-16T16:35:00+08:00\"}}"


生成的SQL语句
SELECT prescriptions.*,patient_cases.patient_name FROM `prescriptions` INNER JOIN `patient_case_details` ON `patient_case_details`.id = `prescriptions`.patient_case_detail_id INNER JOIN `patient_cases` ON `patient_cases`.id = `patient_case_details`.patient_case_id ORDER BY id DESC
分享到:
评论

相关推荐

    Rails3的ActiveRecord 查询API.doc

    在 Rails 2.x 中,许多使用哈希参数的查询方法如 `:conditions`, `:include`, `:joins` 等在 Rails 3.1 中被标记为过时,虽然在3.1版本中仍然可用,但计划在 Rails 3.2 中完全移除。这些变化主要是为了引入一个新的...

    Ruby-OccamsRecord缺少ActiveRecord的高效查询API

    例如,你可以使用Occam's Record来创建复杂的JOINs、子查询或者自定义SQL片段,而无需担心性能开销。 在使用Occams Record时,你需要对SQL有更深入的理解,因为它的API更偏向于直接操作SQL语句。这对于需要优化查询...

    ActiveRecord简单实例_activerecord.zip

    在Ruby on Rails框架中,ActiveRecord是一个至...在实际开发中,熟练掌握ActiveRecord的使用,可以极大地提高开发效率和代码质量。通过实例练习,你可以更深入地理解其工作原理,更好地利用它来构建复杂的Web应用程序。

    Castle ActiveRecord快速入门指南、ActiveRecord帮助文档

    - ActiveRecord 提供了内置的事务管理,可以在方法中使用 `using (var tx = Session.Current.BeginTransaction())` 来开启事务,事务中的所有操作将在最后一起提交或回滚。 6. **事件和生命周期** - 支持 Before...

    Ruby-一个轻量级和数据库级Ruby库用于将任何ActiveRecord查询转换为分析哈希以备任何图表库使用

    综合这些信息,我们可以推断出这个Ruby库是一个专注于数据库查询和数据转换的工具,它帮助开发者将ActiveRecord查询结果转化为分析哈希,便于在各种图表库中进行数据可视化。对于Ruby on Rails开发者来说,这可以极...

    Pro ActiveRecord Databases with Ruby and Rails.pdf

    《Pro ActiveRecord Databases with Ruby and Rails》这本书深入探讨了如何使用ActiveRecord框架来高效地处理Ruby on Rails中的数据库操作。本书由Kevin Marshall、Chad Pytel和Jon Yurek共同撰写,他们都是在Ruby与...

    ActiveRecord使用文档

    ActiveRecord的model创建,常用的一些增删改查以及HQL的使用

    Castle.ActiveRecord (.NET FrameWork 2.0)

    如果你想使用Castle.ActiveRecord,但又不想使用.NET Framework 3.0/3.5/4.0或更高版本,那么这个就是你所需要的,For .NET FrameWork 2.0,我整理了好久,自己从官方一个资源库找到并整理好的一套。 -------------...

    Ruby-ByStar通过年月周查询ActiveRecord对象

    在实际应用中,ByStar gem 还可以与其他ActiveRecord查询方法结合使用,如`where`、`order`和`group`,以实现更复杂的查询需求。例如,你可以按月份分组并计数事件: ```ruby event_counts = Event.group_by_month...

    NHibernate中文教程+activerecord

    使用ActiveRecord,可以直接在对象上执行CRUD操作,无需通过Session,使得代码更简洁。 8. ** Castle ActiveRecord** Castle ActiveRecord是NHibernate ActiveRecord实现的一个版本,提供了额外的功能和方便性。它...

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

    OccamsRecord是一个高效的高级查询库,可与ActiveRecord一起使用。 它不是ORM或ActiveRecord的替代品。 通过为OccamsRecord提供以下两点,它可以为您的ActiveRecord应用程序注入新鲜的活力: 1)巨大的性能提升 至少...

    ActiveRecord缺少的高效查询API-Ruby开发

    -Occam的Razor OccamsRecord是一个高效的高级查询库,可与ActiveRecord一起使用。 它不是ORM或ActiveRecord替代品。 OccamsRec Occams记录请勿在不必要的情况下繁殖实体。 -Occam的Razor OccamsRecord是一个高效的...

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

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

    基于ASP的实现ActiveRecord数据查询更新 v1.0.zip

    这个"基于ASP的实现ActiveRecord数据查询更新 v1.0.zip"压缩包可能包含了一个利用ASP技术来实现ActiveRecord设计模式的示例或者框架。 ActiveRecord是面向对象编程中的一个设计模式,它将数据库表的记录映射到类的...

    ASP源码—实现ActiveRecord数据查询更新 v1.0.zip

    5. **查询与更新**:在ActiveRecord模式下,查询数据库可以转化为查找特定对象,或者使用集合方法(如Find、All等)来获取满足条件的对象。更新则涉及更改对象属性,然后调用Update方法。这种方法减少了对SQL的直接...

    Castle.ActiveRecord 升级NHibernate到3.4.0GA

    Castle.ActiveRecord官方已经停止更新了,官方最高支持到NHibernate 3.1.0.4000,这个版本还有不少问题(例如:[NH-2213] - CLONE -Wrong parameters order in IQuery with SetParameterList and Filter)。...

    简单Castle.ActiveRecord.Generator

    Castle.ActiveRecord.Generator 是一个基于 Castle ActiveRecord 框架的代码生成工具,它极大地简化了在.NET环境中使用ActiveRecord模式进行数据库操作的工作流程。ActiveRecord是面向对象持久化的一个设计模式,将...

    MyBatisPlus的ActiveRecord实现CRUD示例代码

    如果需要分页查询,可以使用`Page`对象配合`page`方法: ```java Page&lt;User&gt; page = new Page(1, 10); IPage&lt;User&gt; result = userMapper.selectPage(page, null); ``` 3. **更新(Update)** 更新数据时,先...

    ASP实例开发源码-ASP实现ActiveRecord数据查询更新 v1.0.zip

    ASP实例开发源码—ASP实现ActiveRecord数据查询更新 v1.0.zip ASP实例开发源码—ASP实现ActiveRecord数据查询更新 v1.0.zip ASP实例开发源码—ASP实现ActiveRecord数据查询更新 v1.0.zip

    ASP实现ActiveRecord数据查询更新 v1.0-ASP源码.zip

    在这个"ASP实现ActiveRecord数据查询更新 v1.0-ASP源码.zip"的压缩包中,我们可以预期包含了一些实现ActiveRecord模式的ASP源码,用于处理数据查询和更新操作。 ActiveRecord模式的核心思想是将数据库表映射为对象...

Global site tag (gtag.js) - Google Analytics