关系:
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-->
分享到:
相关推荐
1. **ActiveRecord模式**:ActiveRecord模式将业务对象与数据库表映射,每个类代表一个数据库表,每个实例对应表中的一行。通过这种方式,开发者可以直接对对象进行操作,而无需编写大量的SQL语句。 2. **Castle ...
1. **实体类(Entity)**:例如User.java,包含了数据库表的字段定义,使用@DatabaseField注解标记字段,Afinal会根据这些注解自动生成相应的表结构。 2. **数据库操作接口(Dao)**:如UserDao.java,提供了对User...
- **单表继承**:介绍如何使用单表继承来实现多态关联。 #### ActiveRecord查询接口 - **从数据库中检索对象**:讲述如何使用ActiveRecord从数据库中查询和检索数据。 - **条件查询**:展示如何构建复杂的查询条件...
《敏捷Web开发与Rails——第二版 Beta版》是一本深入探讨使用Ruby on Rails框架进行敏捷Web应用开发的经典著作。这本书的实例代码存放在名为"depot"的压缩包中,涵盖了Rails开发的关键技术和最佳实践。在Rails框架下...
第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 ...
例如,通过Windsor容器管理服务实例,使用ActiveRecord简化数据访问层,结合Dynamic Proxy实现AOP功能,进一步提高代码的可维护性和可测试性。 总的来说,"Castle-bin-net-2.0.rar"这个压缩包为.NET开发者提供了...
本教程将引导你从零开始学习Ruby on Rails的开发,通过一个具体的实例项目——Depot应用,让你深入理解Rails的工作原理和开发流程。 首先,让我们深入了解Ruby语言。Ruby是一种动态类型、面向对象的脚本语言,以其...
`Product`、`Cart`和`CartItem`模型会对应数据库中的表,通过ActiveRecord方法实现CRUD(创建、读取、更新、删除)操作。 5. **会话管理(Session)**:在Rails中,购物车通常使用会话来持久化用户的数据。会话可以...
《基于ThinkPHP框架的工作流模块实现详解——以ntdgg-tpflow-master_tpflow_severalxof_为例》 在IT行业中,工作流管理系统(Workflow Management System, WMS)是企业信息化建设的重要组成部分,它能够规范业务...
《Rails 5 for Agile Web Development Source Code》是关于使用Ruby on Rails框架的最新版本——Rails 5进行高效、敏捷Web开发的源代码集合。Rails是一个流行的开源全栈框架,它基于MVC(模型-视图-控制器)架构模式...
接着,在数据库迁移文件中,我们使用ActiveRecord的语法创建表结构,如`rails generate migration CreateUsers name:string email:string password_digest:string`。 视图层是用户与应用交互的地方。在Rails中,...
例如,文章内容可以通过ActiveRecord模型存储,评论可通过Ajax异步提交,分类和标签可通过关联查询实现,搜索则可以通过全文搜索引擎如Elasticsearch集成。 6. **部署与维护** 在GitHub Pages上部署Ruby应用通常...
本文将深入探讨由Michael Hartl编写的《Ruby on Rails教程》第三版中的核心示例应用程序——sample_app。这个应用程序旨在通过实践,帮助开发者逐步掌握Rails的精髓。 sample_app是学习Rails的理想起点,因为它包含...
通过路由、模型关联、ActiveRecord等特性,Rails使得开发者能够高效地构建复杂的Web应用。 总的来说,Ruby语言以其简洁、灵活和强大的特性吸引了众多开发者。通过对"MytestDemo"项目的分析,我们可以深入理解Ruby的...