Ruby中的Composition类:放哪,有多少方法?

wlwcrazw  于 2023-10-17  发布在  Ruby
关注(0)|答案(1)|浏览(90)

在我的Rails后端,我想在不同的模型类中重用几个方法。
Google搜索指向Ruby composition。
我有两个关于良好做法的问题:
1.一个composition class可以包含多少个方法?从this文章中的“组合的拯救”部分,听起来像组合应该只有一个(非私有)方法。这是正确的吗?为什么?
1.合成类文件放在哪个文件夹?我读到服务对象转到app/services文件夹,关注转到app/models/concerns。应使用哪个文件夹进行合成?
我知道这些都不是严格的规则,我已经搜索过,但没有得到答案。我真的很想知道你的好习惯和经验。谢谢你,谢谢!

aamkag61

aamkag611#

当使用组合时,你可以根据自己的喜好向mixin或concern中添加任意多的方法。
我建议只有当它们有共同的用例时,才将方法组合到mixin或关注点中。并且应该有一个明显的标题或方法组的名称。例如,您可以关注与日志记录或审计相关的方法,另一个与身份验证或授权相关的方法,以及另一个与处理上传文件相关的共享方法。
Ruby on Rails中组合混入的事实标准是使用Concern,模型关注点的默认位置是app/models/concerns/...,控制器关注点的默认位置是app/controller/concerns/...
请参阅官方Rails指南和ActiveSupport::Concern in the Rails docs中的“使用关注点”。

相关问题