Ruby 中的组合类:放在哪里,有多少个方法?

问题描述 投票:0回答:1

在我的 Rails 后端,我想在不同的模型类中重用多个方法。

Google 搜索将我引向 Ruby 组合。

我有两个关于良好实践的问题:

  1. 一个合成类可以包含多少个方法? 从这篇文章“组合来救援”部分来看,听起来组合应该只有一个(非私有)方法。 这是正确的吗?为什么?

  2. 作文类文件去哪个文件夹? 我读到服务对象转到

    app/services
    文件夹,关注点转到
    app/models/concerns
    。应该使用哪个文件夹进行合成?

我知道这些不是严格的规则,我已经搜索过但无法得到答案。 我真的很想了解良好的做法和您的经验。 谢谢!

ruby-on-rails ruby inheritance composition service-object
1个回答
0
投票

使用组合时,您可以根据需要向 mixin 或关注点添加任意数量的方法。

我建议仅当方法具有共同用例时才将方法组合到 mixin 或关注点中。并且该组方法应该有一个明显的标题或名称。例如,您可能关注与日志记录或审核相关的方法,另一个与身份验证或授权相关的方法,以及另一个与处理上传文件相关的共享方法。

Ruby on Rails 中组合 mixin 的事实标准是使用

Concern
,模型关注点的默认位置是
app/models/concerns/...
,控制器关注点的默认位置是
app/controller/concerns/...

请参阅官方 Rails 指南中的 “使用问题” 和 Rails 文档中的

ActiveSupport::Concern

© www.soinside.com 2019 - 2024. All rights reserved.