2

さて、これが私の状況です。PHP開発者は最近Rails開発者になりました。PHPコードでは、「基本」クラスとしての抽象クラスの使用はかなり一般的なパターンです。現在のRailsアプリケーションに移行するとき、私はPHPのアイデアを頭に入れて多くの「事前計画」を行いましたが、これは今や少し頭痛の種になっています。

さまざまな種類の請求書があります。PHPでは、抽象クラスを作成し、そのクラスを拡張するさまざまなタイプの請求書を作成します。抽象クラスに重複コードを保持することで物事を乾かし、人生は良いです。Railsでは、動作が少し異なります。

自分の先入観にぴったり合うパターンが見つからないようです。STIは素晴らしいですが、各請求書には多くの異なるフィールドがあるため、すべてのNullフィールドのアイデアは嫌いです。モジュールを使用してコードをドライアップするポリモーフィックアソシエーションに近づきました。しかし、私が見ているところはどこでも、ポリモーフィックな関連付けは、私が意図している方法とは異なる方法で使用されています。たとえば、railscastには、それぞれコメントを使用する必要がある3つの異なるクラスがあります。それはまったく同じではありません。

だからここに私の質問があります:私はすでにモジュールを使用してコードを乾燥させる方法を知っていますが、ポリモーフィックアソシエーションを使用して、phpの「基本」クラスと同様のモジュール性をコードに提供するにはどうすればよいですか?参考までに、STIを使用することはできません。これは、さまざまな種類の請求書が作成される可能性があるため、制限がないためです。今のところ1ですが、1か月で20になる可能性があります。

4

1 に答える 1

3

使用できる別のオプションがあります:複数テーブル継承。設定は少し複雑ですが、STIにはない利点と、多形性関連にはない利点があります。この投稿をチェックして、これを機能させる方法を確認してください。

于 2013-03-26T13:19:14.477 に答える