2015-05-14 3 views
0

У меня есть две моделей в пространстве имен project, как это: class Project::Foo и class Project::BarRails пространств имен модель дает UNINITIALIZED постоянной ошибке позиционированию

Они имеют эту взаимосвязь

в app/models/project/foo.rbhas_many :bars

в app/models/project/bar.rbbelongs_to :foo

Однако когда я хочу позвонить Project::Foo.create(...) или даже Project::Bar.create(...) Я получаю NameError с uninitialized constant Foo или Bar соответственно.

Нужно ли мне помещать что-то подобное в модели? belongs_to :project::foo? или как это исправить?

EDIT

в app/models/project/foo.rb теперь гласит:

module Project 
    class Foo 
    has_many :bars 
    end 
end 

и баров имеет ту же структуру, но с belongs_to в нем

я все еще получаю ту же ошибку

+0

Вы получаете сообщение об ошибке, если вы удалите 'belongs_to' и' has_many' отношения? –

+0

нет. Зачем? – Killerpixler

+0

Являются ли ваши модели унаследованными от ActiveRecord? Я не думаю, что вы можете использовать макросы отношений без этого. Итак, если вы измените определение класса на 'class Foo

ответ

1

если у вас есть класс Foo, код в файле должен выглядеть

module Project #create the scope 
    class Foo 

    end 
end 

или вы можете, определить файл project.rb с

module Project 
end 

и сохранить родственные модели в папке проекта

+0

Я внес изменения, но все равно получаю сообщение об ошибке – Killerpixler

+0

Вы запускаете этот код с консоли ('rails console') или с помощью запущенного сервера? – djaszczurowski

+1

Если с консоли ... попробуйте перезагрузить его. – djaszczurowski

Смежные вопросы