0

最近,我一直致力于验证一个架构设计理念,使用 Rails ActiveResource 作为客户端,使用 WCF RESTful 服务作为服务器。我在 VMWare Fusion(自托管模式)托管的 Macintosh 上的训练营分区中的 Windows Vista 上运行 WCF 服务。当我在浏览器中从 Mac 调用服务时,我确实从虚拟服务器获得了正确的 xml 响应。这是通过从 Vista 服务器获取 ip 地址并在 uri 中使用它来完成的。

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

此服务返回一个名为“Context”的类的实例,其中公开了三个 DataMember 属性 (id = 14)。我想在 Rails (2.3.2) 客户端中使用类名“DTree”,所以我定义了以下内容:

类 DTree < ActiveResource::Base
 self.site = ' http://168.192.243.128/WCFTestService/ContextService.svc/ '
结束

不过,我遇到的问题可能与此设置无关。

当我在 Rails 中的测试项目根目录启动控制台并键入以下内容时:

DTree.find(14)

我得到:NameError:未初始化的常量 DTree (...)

谷歌搜索的艺术似乎并没有发现任何真正有用的东西,这有时告诉我我的问题是显而易见的,为什么有人会发布此类问题的答案。据我所知,从其他示例来看,我的活动资源类至少应该在 rails 控制台中被识别,而不仅仅是定义类。另一个错误会很好。

4

1 回答 1

1

我想我会回答我自己的问题,因为事实证明这很简单,而且我讨厌在没有答案的情况下在网上提出问题。

这基本上是由于活动资源类不是使用脚本/生成命令创建的,该命令确保文件的正确名称和位置。

我的类名是 DTree,我在 /models 目录中创建了一个名为 dtree.rb 的文件。它应该被命名为 d_tree.rb 并且位于 /lib 目录中。

于 2010-01-26T15:49:21.957 回答