データのハイブリッドへのインターフェイスとして機能する Rails アプリケーションがあります。私が必要とする情報のほとんどは、XML-RPC を使用してコマンド行プログラムから取得されます。これとは別に、データベースに保存するしかない追加のデータが必要です。このため、アプリケーションを設計する最善の方法を見つけるのに苦労しています。
XML-RPC を使用してプログラムから取得した適切なデータにそのインスタンス変数を定義することにより、オブジェクトの呼び出しに依存し、オブジェクトを「強化」するようにオーバーライドself.all
しました。self.find(id)
super
ただし、これはすべてかなり複雑に思えます。たとえば、魔法のファインダー ( find_by_x
) を使用する能力を失ったとします。これにより、他の何かが壊れるかどうかはわかりません。
私の質問は、これを行うためのより論理的で賢明な方法があるかどうかです。つまり、ほとんどのデータを XML-RPC に依存するアプリケーションを設計するだけでなく、データベースに格納された一部のデータも設計します。
について読みましafter_find
た。このコールバックを使用して、「オブジェクト エンリッチ」プロセスを実装し、レコードが見つかったときにいつでも実行できるようにします。ただし、アイテムに関連付けられたデータを取得する方法は、すべてのアイテム データを取得する方法とは異なります。すべてのアイテム データを取得する方法 ( ) は、 1 つのアイテムのデータself.all
のみを取得する方法 ( ) よりもはるかに効率的ですが、残念ながら適用できません。コールバックを呼び出しに適用しないようにする方法があれば、これはうまく機能します。self.find
self.all