0

最近は、Rails ActiveResource をクライアントとして使用し、WCF レストフル サービスをサーバーとして使用して、アーキテクチャ設計のアイデアの検証に取り組んでいます。VMWare Fusion (自己ホスト モード) でホストされている Macintosh のブートキャンプ パーティションで、Windows Vista で WCF サービスを実行しています。ブラウザで Mac からサービスを呼び出すと、実際に仮想サーバーから正しい xml 応答を取得します。これは、Vista サーバーから IP アドレスを取得し、それを uri で使用することによって行われます。

http://168.192.243.128/WCFTestService/ContextService.svc/dtree/14

このサービスは、3 つの DataMember 属性 (id = 14) が公開された「Context」というクラスのインスタンスを返します。Rails (2.3.2) クライアントでクラス名「DTree」を使用したいので、次のように定義します。

class DTree < ActiveResource::Base
 self.site = ' http://168.192.243.128/WCFTestService/ContextService.svc/ '
end

私が経験している問題は、このセットアップとはほとんど関係がないかもしれません。

Rails のテスト プロジェクト ルートでコンソールを起動し、次のように入力します。

DTree.find(14)

私は得る:NameError:初期化されていない定数DTree(...)

グーグルの芸術は、実際に役立つものを何も見つけていないようです。それは、私の問題が非常に簡単であり、なぜ誰かがこの種の問題に対する回答を投稿するのかを教えてくれます. 私が知る限り、および他の例から、私のアクティブなリソース クラスは、クラスを定義するだけで、少なくとも Rails コンソールで認識されるはずです。別のエラーは問題ありません。

4

1 に答える 1

1

自分の質問に答えようと思ったのは、それが非常に簡単であることが判明したためであり、回答のないオンラインの質問にたどり着くのが嫌いでした.

これは基本的に、ファイルの正しい名前と場所を保証する script/generate コマンドを使用してアクティブなリソース クラスが作成されていないことが原因でした。

私のクラス名は DTree で、/models ディレクトリに dtree.rb という名前のファイルを作成しました。これは d_tree.rb という名前で、/lib ディレクトリにあるはずです。

于 2010-01-26T15:49:21.957 に答える