高级Active Record:增强你的模型
1. 模型方法的灵活性
在模型中添加的方法可以非常简单,比如仅返回 true 或 false ;也可以很复杂,例如对对象进行大量计算和格式化操作。你可以充分利用Ruby的强大功能,随心所欲地编写模型方法。
如果你现在还不太习惯在模型中添加自己的方法,也不用担心。重要的是要知道,Active Record模型本质上就是普通的Ruby类,可以通过足够的Ruby技能对其进行扩展、修改、操作和深入探究。了解这一点对于理解Active Record的高级特性非常有帮助。
2. 胖模型(FAT MODELS)
有些人可能会对 long_title 方法感到担忧,认为它违反了MVC范式,会问:“格式化代码难道不应该放在视图中吗?”一般来说,答案是肯定的。但拥有智能的模型往往很有帮助。当你向模型询问关于它自身的信息时,自然会期望它能给出一个合理的答案,而不需要后续花费大量精力来解读。因此,在代码中使用能够忠实地表示模型数据的小格式化字符串和基本数据类型是有益的。
像这样的智能模型通常被称为“胖模型”。将与模型相关的逻辑放在模型内部,而不是放在控制器或视图中,这样可以使模型更易于处理,并帮助代码遵循DRY(Don’t Repeat Yourself)原则。
遵循DRY原则的一个基本经验法则是,如果你发现自己在复制粘贴代码,不妨花点时间思考是否有更好的解决方法。例如,如果你将 Article#long_title 的格式化代码放在模型外部,那么每次需要以人类友好的方式表示文
超级会员免费看
订阅专栏 解锁全文
3

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



