2010-01-25 29 views
0

Récemment, j'ai travaillé sur la validation d'une idée de conception architecturale en utilisant Rails ActiveResource en tant que client et un service reposant WCF en tant que serveur. J'ai le service WCF fonctionnant sur Windows Vista dans une partition bootcamp sur un Macintosh hébergé dans VMWare Fusion (mode auto-hébergé). Lorsque j'appelle le service depuis le Mac dans un navigateur, j'obtiens en effet la bonne réponse xml du serveur virtuel. Cela est fait en obtenant l'adresse IP du serveur Vista et en l'utilisant dans l'uri.ActiveResource NameError appelant un service WCF

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

Ce service retourne une instance d'une classe appelée "Contexte" avec trois attributs DataMember exposés (id = 14). Je veux utiliser le nom de classe "Dtree" dans les rails (2.3.2) client donc je définir les éléments suivants:

classe Dtree < ActiveResource :: Base
  self.site = 'http://168.192.243.128/WCFTestService/ContextService.svc/'
fin

Le problème que je rencontre peut cependant avoir peu à voir avec cette configuration.

Lorsque je démarre la console à la racine du projet de test dans Rails et tapez ce qui suit:

DTree.find (14)

Je reçois: NameError: uninitialized Dtree constante (..

L'art de googler ne semble pas trouver quelque chose d'une utilisation réelle, ce qui me dit parfois que mon problème est une évidence et pourquoi quelqu'un publierait une réponse à ce type de problème. De tout ce que je peux dire et d'autres exemples, ma classe de ressources active devrait être au moins reconnue dans la console rails avec rien de plus que de définir la classe. Une autre erreur serait bien.

Répondre

1

Je pensais que je répondrais à ma propre question, car il s'est avéré être un brainer et je déteste arriver à des questions en ligne sans réponse.

Ceci était principalement dû au fait que les classes de ressources actives ne sont pas créées à l'aide de la commande script/generate qui garantit le nom et l'emplacement corrects du fichier.

Mon nom de classe est DTree et j'ai créé un fichier nommé dtree.rb dans le répertoire/models. Il aurait dû s'appeler d_tree.rb et se trouver dans le répertoire/lib.