1

次のような状況になりました。

Railsアプリケーションと2つのデータベースがあります。1つはRailsアプリケーション用で、もう1つは(同じDBサーバーインスタンスで実行されている)別の非Webアプリケーション用です。

私のRailsWebアプリケーションは、SQLを介して(2番目の)データベースから直接読み取ることができますが、セキュリティ上の制限のために書き込むことができません(データは非Webアプリケーションによって検証される必要があります)。そこで、データベースに書き込むためのSOAPに基づく小さなCLIインターフェイスを作成しました。

私の質問は次のとおりです。SQL接続を介して読み取りが通常どおり行われるようにActiveRecordモデル(Rails 3)を拡張できますが、更新/作成/削除は自作のインターフェイスを介して行われます。

ご回答ありがとうございます!

4

2 に答える 2

1

私は良い解決策を見つけたと思います:)

@ rtacconi:リンクをありがとうございますが、Rails 3以降、ActiveModelはテーブルなしで動作するため、これらの拡張機能を使用する必要はありません:)

テーブルの読み取りにはActiveRecordの完全なサポートが必要ですが、書き込みはSOAPインターフェイスを介して行われます。これは、Railsアプリケーションのデータを検証できないためです。

したがって、私の解決策は、ActiveRecord :: Persistence Module(activerecord-3.0.0 / lib / active_record /persistence.rbにあります)をオーバーロードすることです。

このモジュールは、DB接続への書き込みタスクを担当します。したがって、DBに書き込む代わりに、永続層はSOAPインターフェースを呼び出します。

よろしくお願いします

サイモン

于 2010-09-06T17:50:12.943 に答える
0

テーブルレスモデルを実装できます: ActiveRecord :: BaseWithoutTableまたはhttp://github.com/AnthonyCaliendo/acts_without_database

SOAPライブラリを使用してオブジェクトにデータを設定/取得できるよりも。

于 2010-09-06T15:39:45.987 に答える