在我的Rails后端,我想在不同的模型类中重用几个方法。
Google搜索指向Ruby composition。
我有两个关于良好做法的问题:
1.一个composition class可以包含多少个方法?从this文章中的“组合的拯救”部分,听起来像组合应该只有一个(非私有)方法。这是正确的吗?为什么?
1.合成类文件放在哪个文件夹?我读到服务对象转到app/services
文件夹,关注转到app/models/concerns
。应使用哪个文件夹进行合成?
我知道这些都不是严格的规则,我已经搜索过,但没有得到答案。我真的很想知道你的好习惯和经验。谢谢你,谢谢!
1条答案
按热度按时间aamkag611#
当使用组合时,你可以根据自己的喜好向mixin或concern中添加任意多的方法。
我建议只有当它们有共同的用例时,才将方法组合到mixin或关注点中。并且应该有一个明显的标题或方法组的名称。例如,您可以关注与日志记录或审计相关的方法,另一个与身份验证或授权相关的方法,以及另一个与处理上传文件相关的共享方法。
Ruby on Rails中组合混入的事实标准是使用
Concern
,模型关注点的默认位置是app/models/concerns/...
,控制器关注点的默认位置是app/controller/concerns/...
。请参阅官方Rails指南和
ActiveSupport::Concern
in the Rails docs中的“使用关注点”。