ActiveResource NameError, вызывающая службу WCF - PullRequest
0 голосов
/ 25 января 2010

В последнее время я работаю над проверкой идеи архитектурного дизайна, используя Rails ActiveResource в качестве клиента и WCF-службу отдыха в качестве сервера.У меня есть служба WCF, работающая в Windows Vista в разделе bootcamp на Macintosh, размещенном в VMWare Fusion (режим самостоятельного размещения).Когда я вызываю службу с Mac в браузере, я действительно получаю правильный ответ xml от виртуального сервера.Это делается путем получения IP-адреса с сервера Vista и использования его в URI.

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

Эта служба возвращает экземпляр класса с именем «Context» с тремя атрибутами DataMember.выставлено (id = 14).Я хочу использовать имя класса "DTree" в клиенте Rails (2.3.2), поэтому я определяю следующее:

класс DTree http://168.192.243.128/WCFTestService/ContextService.svc/'
end

Проблема, с которой я столкнулся, может иметь мало общего с этой настройкой.

Когда я запускаю консоль вкорень тестового проекта в Rails и введите следующее:

DTree.find (14)

Я получаю: NameError: неинициализированная константа DTree (...)

Изобразительное искусство поиска в Google, кажется, не приносит ничего реального, что иногда говорит мне, что моя проблема проста и почему кто-то публикует ответ на этот типвопрос.Из всего, что я могу сказать, и из других примеров мой активный класс ресурсов должен быть по крайней мере распознан в консоли rails, не более чем определяя класс.Другая ошибка будет в порядке.

1 Ответ

1 голос
/ 26 января 2010

Я думал, что отвечу на свой вопрос, потому что это оказалось совсем не сложно, и я ненавижу приходить к вопросам в Интернете без ответа.

Это было в основном вызвано тем, что активные классы ресурсов не создаются с помощью команды script / generate, которая обеспечивает правильное имя и местоположение файла.

Мой класс называется DTree, и я создал файл с именем dtree.rb в каталоге / models. Он должен был называться d_tree.rb и находиться в каталоге / lib.

...