模型的编程扩展:从软增强到硬增强
1. 作曲家模型的软增强
在音乐应用的开发中,作曲家模型相对较为静态,大部分作曲家已停止创作,因此对其数据操作工具集的需求不如其他模型强烈。我们为作曲家模型定义了两个实例方法,用于软增强。
- 获取作曲家作品版本 :该方法用于生成一个可点击的版本列表,将在后续音乐商店视图中使用。
def editions
works.map {|work| work.editions }.flatten.uniq
end
- 获取作曲家作品的出版商 :此方法可能仅用于内部会计目的,但也展示了扩展应用方法的便捷性。
def publishers
editions.map{|edition| edition.publisher }.uniq
end
2. Ruby 与 SQL 在软增强开发中的对比
在编写从关系型数据库中提取记录的代码时,SQL 代码通常是最有效、最快的选择。ActiveRecord 会将 Ruby 代码转换为 SQL 语句进行数据库查询,并且允许直接使用纯 SQL 以提高执行速度,但会失去 Ruby 的简洁外观。
以 Composer#editions 方法为例,Ruby 版本的代码会先获取作曲家的所有作品,再通过 Ruby 操作提取版本
超级会员免费看
订阅专栏 解锁全文

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



