`
lzqustc
  • 浏览: 211176 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

Activerecord应用实例——多表关联查询

阅读更多

 

关系:

class Company < ActiveRecord::Base

  has_many :regist_infos

end

class RegistInfo < ActiveRecord::Base

   belongs_to:company           company_id

   belongs_to:b2bsite             b2bsite_id

   has_many:post_infos                

end

class PostInfo < ActiveRecord::Base

   belongs_to:regist_info          regist_info_id

   belongs_to:product            product_id    

end

class Product < ActiveRecord::Base

   belongs_to :company          company_id

   has_many:post_infos                       

end

 

class B2bsite < ActiveRecord::Base

   has_many:regist_infos                  

end

<!--EndFragment-->

 

 

应用以上这些关系,简化查询语句:

- @company.regist_infos.each do |info|

   %table

     %tr

        %td{:width=>"16%", :align=>"center", :valign=>"middle"}

           = B2bsite.find( info.b2bsite_id ).name

        %td{:width=>"20%",:align=>"left",:valign=>"middle"}

           = "已注册"            if info.regist_state == 1 

           = "已通过邮箱验证"    if info.regist_state == 2 

           = "已完成"            if info.regist_state == 3 

        %td{:width=>"15%",:align=>"left",:valign=>"middle"}

           = info.posted_product

        %td{:width=>"15%",:align=>"left",:valign=>"middle"}

           = info.posted_info 

        %td{:width=>"20%",:align=>"left",:valign=>"middle"}

           - info.post_infos.each do |p| 

              = Product.find( p.product_id ).title     if p.post_type == 2

              %br

        %td{:width=>"20%",:align=>"left",:valign=>"middle"}              

           - info.post_infos.each do |p| 

              = Product.find( p.product_id ).name    if p.post_type == 1

              %br

<!--EndFragment-->
分享到:
评论

相关推荐

    Castle ActiveRecord 手册

    1. **ActiveRecord模式**:ActiveRecord模式将业务对象与数据库表映射,每个类代表一个数据库表,每个实例对应表中的一行。通过这种方式,开发者可以直接对对象进行操作,而无需编写大量的SQL语句。 2. **Castle ...

    安卓Android源码——afinal开源框架实例源码.zip

    1. **实体类(Entity)**:例如User.java,包含了数据库表的字段定义,使用@DatabaseField注解标记字段,Afinal会根据这些注解自动生成相应的表结构。 2. **数据库操作接口(Dao)**:如UserDao.java,提供了对User...

    Ruby on Rails 指南 v5.0.1 中文版

    - **单表继承**:介绍如何使用单表继承来实现多态关联。 #### ActiveRecord查询接口 - **从数据库中检索对象**:讲述如何使用ActiveRecord从数据库中查询和检索数据。 - **条件查询**:展示如何构建复杂的查询条件...

    Agile Web Development with Rails-Second Edition-Beta一书例子

    《敏捷Web开发与Rails——第二版 Beta版》是一本深入探讨使用Ruby on Rails框架进行敏捷Web应用开发的经典著作。这本书的实例代码存放在名为"depot"的压缩包中,涵盖了Rails开发的关键技术和最佳实践。在Rails框架下...

    Web开发敏捷之道-应用Rails进行敏捷Web开发-第三版.rar

    第19章 ActiveRecord第二部分:表间关联 265 19.1 创建外键 266 19.2 在模型对象中指定关联 267 19.3 belongs_to和has_xxx声明 268 19.4 连接多张表 280 19.5 自引用的连接 287 19.6 Acts As 288 19.7 何时保存 291 ...

    Castle-bin-net-2.0.rar

    例如,通过Windsor容器管理服务实例,使用ActiveRecord简化数据访问层,结合Dynamic Proxy实现AOP功能,进一步提高代码的可维护性和可测试性。 总的来说,"Castle-bin-net-2.0.rar"这个压缩包为.NET开发者提供了...

    Ruby on rails开发从头来

    本教程将引导你从零开始学习Ruby on Rails的开发,通过一个具体的实例项目——Depot应用,让你深入理解Rails的工作原理和开发流程。 首先,让我们深入了解Ruby语言。Ruby是一种动态类型、面向对象的脚本语言,以其...

    shopping_card_rails-源码.rar

    `Product`、`Cart`和`CartItem`模型会对应数据库中的表,通过ActiveRecord方法实现CRUD(创建、读取、更新、删除)操作。 5. **会话管理(Session)**:在Rails中,购物车通常使用会话来持久化用户的数据。会话可以...

    ntdgg-tpflow-master_tpflow_severalxof_

    《基于ThinkPHP框架的工作流模块实现详解——以ntdgg-tpflow-master_tpflow_severalxof_为例》 在IT行业中,工作流管理系统(Workflow Management System, WMS)是企业信息化建设的重要组成部分,它能够规范业务...

    rails50:使用Rails 5进行敏捷Web开发的源代码-web development source code

    《Rails 5 for Agile Web Development Source Code》是关于使用Ruby on Rails框架的最新版本——Rails 5进行高效、敏捷Web开发的源代码集合。Rails是一个流行的开源全栈框架,它基于MVC(模型-视图-控制器)架构模式...

    SpeechTherapy:Ruby on Rails 项目 - EDx SaaS 169.1x

    接着,在数据库迁移文件中,我们使用ActiveRecord的语法创建表结构,如`rails generate migration CreateUsers name:string email:string password_digest:string`。 视图层是用户与应用交互的地方。在Rails中,...

    jelf.github.io:个人博客,主要是俄语

    例如,文章内容可以通过ActiveRecord模型存储,评论可通过Ajax异步提交,分类和标签可通过关联查询实现,搜索则可以通过全文搜索引擎如Elasticsearch集成。 6. **部署与维护** 在GitHub Pages上部署Ruby应用通常...

    sample_app:Michael Hartl 的 Rails 教程第 3 版中的“sample_app”

    本文将深入探讨由Michael Hartl编写的《Ruby on Rails教程》第三版中的核心示例应用程序——sample_app。这个应用程序旨在通过实践,帮助开发者逐步掌握Rails的精髓。 sample_app是学习Rails的理想起点,因为它包含...

    MytestDemo

    通过路由、模型关联、ActiveRecord等特性,Rails使得开发者能够高效地构建复杂的Web应用。 总的来说,Ruby语言以其简洁、灵活和强大的特性吸引了众多开发者。通过对"MytestDemo"项目的分析,我们可以深入理解Ruby的...

Global site tag (gtag.js) - Google Analytics