在我的 Rails 后端,我想在不同的模型类中重用多个方法。
Google 搜索将我引向 Ruby 组合。
我有两个关于良好实践的问题:
一个合成类可以包含多少个方法? 从这篇文章“组合来救援”部分来看,听起来组合应该只有一个(非私有)方法。 这是正确的吗?为什么?
作文类文件去哪个文件夹? 我读到服务对象转到
app/services
文件夹,关注点转到 app/models/concerns
。应该使用哪个文件夹进行合成?
我知道这些不是严格的规则,我已经搜索过但无法得到答案。 我真的很想了解良好的做法和您的经验。 谢谢!
使用组合时,您可以根据需要向 mixin 或关注点添加任意数量的方法。
我建议仅当方法具有共同用例时才将方法组合到 mixin 或关注点中。并且该组方法应该有一个明显的标题或名称。例如,您可能关注与日志记录或审核相关的方法,另一个与身份验证或授权相关的方法,以及另一个与处理上传文件相关的共享方法。
Ruby on Rails 中组合 mixin 的事实标准是使用
Concern
,模型关注点的默认位置是 app/models/concerns/...
,控制器关注点的默认位置是 app/controller/concerns/...
。
请参阅官方 Rails 指南中的 “使用问题” 和 Rails 文档中的
ActiveSupport::Concern
。