从简单的看法来看,它们似乎只是同一组问题的两种不同方法,除了命名范围是可链接的,而关联扩展则不是。
有人可以进一步解释,或提供一个比命名范围更适合关联扩展的例子吗?
从简单的看法来看,它们似乎只是同一组问题的两种不同方法,除了命名范围是可链接的,而关联扩展则不是。
有人可以进一步解释,或提供一个比命名范围更适合关联扩展的例子吗?
关联扩展在创建、更新等方面非常有用(不一定是查找),可用于自定义方法。
由于您可以访问proxy_owner、proxy_reflection和proxy_target,因此您可以很好地钩入关系。
请查看Rails文档中的关联扩展部分:
http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html
是的,你说得对,主要区别在于named_scope
是可链接的。但它们基本上执行相同的功能,只是关联扩展更快。