Почему ActiveResource 3 связывает пространство имен? - PullRequest
1 голос
/ 23 февраля 2012

Я обновляю приложение rail2 до rails3 и испытываю странное поведение из-за того, что ActiveResource использует API REST (также приложение rails).XML-ответ от API выглядит примерно так:

<company>
    <name>Company Name</name>
    <employee>
        <name>Employee 1</name>
        <position>
            <name>Manager</name>
        </position>
    </employee>
</company>

Теперь я могу правильно использовать API, и точечная запись работает нормально ... т.е.:

company.employee.name #returns Employee 1

Однако я заметил, что тип класса вложенных атрибутов отличается от того, который был в рельсах 2. В рельсах два, типы классов (основанные на приведенном выше XML), будут:

Company
Employee
Position

Однако врельсы 3, типы классов:

Company
Company::Employee
Company::Employee::Position

По некоторым причинам, это пространство имен классов.Я уже определил каждый из классов ActiveResource для каждого из этих типов (без пространства имен), и поскольку rails3 - это объекты пространства имен, он не сопоставляется с классами, которые я определил.

Кто-нибудь знает, существует лиспособ выключить это?

1 Ответ

1 голос
/ 24 февраля 2012

Немного покопался, но я обнаружил, что это потому, что модели еще не загружены.

Я подал заявку здесь (с временным решением): https://github.com/rails/rails/issues/5148

...