私はかなり異なる2つのオブジェクトタイプが異なるテーブルに格納され、異なるカラムとリレーションシップを持つレガシーDBを持っています。ギャップを埋めるために使用される親クラスがありますが、私はそれを実装して子クラスをエミュレートする方法を少し失っています。理想的には、find_all_by_*
のようなメソッドを両方のサブクラスで実行し、すべての結果を単一の配列に戻す必要があります。これを行う標準的な方法がありますか?the code of find
より簡単ですか?Rails:抽象クラスのfind *を実装する方法は?
2
A
答えて
0
大丈夫です、興味深い質問です。これより優れた解決策があるかどうかはわかりませんが、私は魔法がない方法を少し使います。
class MyVirtualModel
def respond_to?(method, include_private = false)
if method.to_s =~ /^find.*/
RealModel1.respond_to?(method, include_private) && RealModel2.respond_to?(method, include_private?)
else
false
end
end
def method_missing(method, *arguments, &block)
if method.to_s =~ /^find.*/
resultset1 = RealModel1.send(method, arguments)
resultset2 = RealModel2.send(method, arguments)
return resultset1 + resultset2
end
end
end
+0
正解ですが、ブロック全体がバイパスされているようです: 'PG :: Error:ERROR:relation" "does not exist'。両方のメソッドの 'binding.pry'は役に立ちませんでした - Rails Webサーバーから呼び出されません。 – l0b0
関連する問題
- 1. 実装抽象/インターフェース方法は
- 2. Django抽象モデル - 抽象ビューメソッドで特定のアクセスを実装する方法は?
- 3. 抽象クラスの抽象メソッドの部分実装
- 4. 抽象基本クラスにカスタムICloneable実装を実装する
- 5. 抽象クラスでのオプションの実装
- 6. write c#抽象クラスのインライン実装?
- 7. pyjnius java抽象クラスの実装
- 8. 派生クラスのインターフェイスメソッドを実装する抽象基本クラス
- 9. クラスが抽象クラスを実装する汎用タイプの制約
- 10. 抽象クラスが可変的コンテキストで使用されるときに抽象メソッドを実装する方法
- 11. 制約のある抽象クラスへのインタフェースの実装方法は?
- 12. JavaScriptで抽象ファクトリメソッドを実装する方法は?
- 13. Java抽象クラス、抽象コンストラクタ
- 14. Javaの抽象クラスでネストされた抽象クラスの実装を強制するには?
- 15. 抽象クラスを実装しているクラスで未定義
- 16. ウィンドウシステム向けの抽象ファクトリを実装する方法
- 17. Javaの抽象クラスは、私はそれを実装して、次のインタフェースと抽象クラスを持つインタフェース
- 18. インタフェースを実装する抽象クラスのメソッドオーバーライド
- 19. 抽象クラス内のインタフェース実装のチェックはアンチパターンですか?
- 20. の実装抽象ベースモデルクラス、レールウェイ™
- 21. 抽象メソッドのネイティブ実装
- 22. カルマユニットテスト - コンポーネントが実装する抽象クラスを調べる
- 23. 抽象クラスの未使用変数の実装の警告を防ぐ方法
- 24. Enum定数で抽象関数を実装する方法
- 25. 抽象クラス対抽象クラス
- 26. Delphi抽象クラスの実装を避ける
- 27. インタフェースと純粋な抽象クラスのJVM実装の違いは?
- 28. 抽象クラスで抽象関数を呼び出す方法
- 29. 抽象クラスはC#で実装されていますか?
- 30. ジェネリック抽象ジャンクションサービスを実装する
DBにビューを作成する方法はありますか? – Yanhao