何时使用关联扩展名与命名范围?

从粗略的一瞥看,它们似乎只是针对同一组问题的两种不同方法,除了命名范围是可链接的,而关联扩展不是。

任何人都可以进一步解释,或提供一个更适合关联扩展而不是命名范围的示例吗?

关联扩展对于创建用于创建,更新等的自定义方法非常有用(不一定要查找)。

因为您可以访问proxy_owner,proxy_reflection,proxy_target,所以您可以很好地了解关系。

查看Rails文档的Association Extension部分:

http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html

是的,你是对的,主要区别在于named_scope是可链接的。 但它们基本上做同样的function,只是关联扩展更快。