Techioz Blog

Ruby のコンポジション クラス: メソッドはどこにいくつ配置するか?

概要

Rails バックエンドで、さまざまなモデル クラスのいくつかのメソッドを再利用したいと考えています。

Google で検索すると、Ruby の構成が示されます。

グッドプラクティスに関して 2 つの質問があります。

これらは厳密な規則ではないことを理解しています。検索しましたが、回答が得られません。 良い実践方法やあなたの経験について知りたいです。 ありがとう!

解決策

コンポジションを使用する場合、ミックスインまたは懸念に好きなだけメソッドを追加できます。

共通のユースケースがある場合にのみ、メソッドをミックスインまたは懸念事項に結合することをお勧めします。また、メソッドのグループにはわかりやすいタイトルまたは名前が必要です。たとえば、ロギングまたは監査に関連するメソッド、認証または認可に関連する別のメソッド、およびアップロードされたファイルの処理に関連する共有メソッドに関心がある可能性があります。

Ruby on Rails のコンポジション ミックスインの事実上の標準は Concern を使用しており、モデル懸念のデフォルトの場所は app/models/concerns/… であり、コントローラー懸念の場合は app/controller/concerns/… です。

公式 Rails ガイドの「Using Concerns」と Rails ドキュメントの ActiveSupport::Concern を参照してください。