Rails数据库关联与表操作全解析
1. 关联扩展的共享
在处理关联关系时,有时我们希望将同一组扩展应用到多个关联上。可以通过将扩展方法放在一个 Ruby 模块中,并使用 :extend 参数将该模块传递给关联声明来实现。示例如下:
has_many :articles, :extend => RatingFinder
若要使用多个模块扩展关联,可以传递一个数组:
has_many :articles, :extend => [ RatingFinder, DateRangeFinder ]
2. 多表连接
关系型数据库允许我们在表之间建立连接。不过,有时静态定义的关系使用起来并不方便。Rails 提供了两种将关系模型映射到更复杂的面向对象模型的机制:单表继承和多态关联。
2.1 单表继承
在面向对象编程中,我们常使用继承来表达抽象之间的关系。例如,应用程序可能会处理不同角色的人员,如客户、员工和经理等。所有角色会有一些共同属性,也有特定于角色的属性。我们可以将 Employee 类和 Customer 类定义为 Person 类的子类,而 Manager 类又是 Employee 类的子类,子类继承父类的属性和职责。
Rails数据库关联与表操作全解析
超级会员免费看
订阅专栏 解锁全文
35

被折叠的 条评论
为什么被折叠?



