Grails アプリケーションには、ユーザーがコメントを作成する必要のあるさまざまなクラスがあります。例: 投稿、書籍、記事
設定
static hasMany = [comments: Comment]
各クラスへの追加は悪い解決策のようです。それらをコメント可能にする最良の方法は何ですか? 一般的な Comment クラスはどのように見えるべきですか?
Grails アプリケーションには、ユーザーがコメントを作成する必要のあるさまざまなクラスがあります。例: 投稿、書籍、記事
設定
static hasMany = [comments: Comment]
各クラスへの追加は悪い解決策のようです。それらをコメント可能にする最良の方法は何ですか? 一般的な Comment クラスはどのように見えるべきですか?
ここで継承を使用できます。
この設定を持つ基本クラスを作成します
static hasMany = [comments: Comment]
& 他のすべてのクラス、つまり Post、Book、Article、Inherit を許可します。
最も簡単な方法は、src/groovy でコメント可能なインターフェイスを定義し、クラスにこのインターフェイスを継承させることです。これは単なる通常の Java コーディングですが、できれば grails サービスを中心に、コメントに関連するすべてのコードを集中化できます。凝ったものにしたい場合は、これに注釈を使用できます。
それが完了したら、このコードをプラグインに移動して、別のプロジェクトで使用できるようにします。
また、抽象基底クラス Commentable を作成すると、他のドメインが Commentable を拡張できます。これで、beensTo コメント可能で Comment クラスを作成できます。単純な Commentable.findAllBy(this) によって、Commentable クラスに getComments を実装することもできます。私の意見では、「hasMany」関係を避けることも良い考えです。