db: seed выдает ошибку - PullRequest
3 голосов
/ 03 июля 2011

Я использую ruby ​​1.9.2 с рельсами 3.0.9.

Всякий раз, когда я пытаюсь выполнить rake db: seed, он выдает следующую ошибку:

rake aborted!
uninitialized constant EmployeeCategory

Я отключилПотокобезопасный и включенный 'dependency_loading в файле config / application.rb.

config.threadsafe! unless $rails_rake_task
config.dependency_loading = true

Но он все еще не работает.

Вот содержимое файла seed.rb

StudentCategory.destroy_all
StudentCategory.create([
 {:name=>"OBC",:is_deleted=>false},
 {:name=>"General",:is_deleted=>false}
])

EmployeeCategory.create([
{:name => 'Management',:prefix => 'MGMT',:status => true},
{:name => 'Teaching',:prefix => 'TCR',:status => true},
{:name => 'Fedena Admin',:prefix => 'Admin',:status => true},
{:name => 'Non-Teaching',:prefix => 'NTCR',:status => true}
])
EmployeePosition.create([
{:name => 'Principal',:employee_category_id => 2,:status => true},
{:name => 'Jr.Teacher',:employee_category_id => 3,:status => true},
{:name => 'Clerk',:employee_category_id => 4,:status => true}
])

Ответы [ 4 ]

7 голосов
/ 03 июля 2011

Это может быть очевидным, но ваша модель employee_category.rb создана в / models? Обнаружил, что каждый раз, когда я получаю эту ошибку, я создаю представление, контроллер и маршрут, но забываю что-то простое, например, добавление файла модели.

4 голосов
/ 29 января 2014

Я решил это, убедившись, что я ссылаюсь на свою модель, а не на мой контроллер в моих данных seed.db. Мой контроллер называется Категории, а моя модель называется Категория.

This did not work:

categories = []
categories << Categories.create(name: 'guitar')
categories << Categories.create(name: 'bass')
categories << Categories.create(name: 'synth')
categories << Categories.create(name: 'effects pedal')
categories << Categories.create(name: 'amplifier')


This worked:

categories = []
categories << Category.create(name: 'guitar')
categories << Category.create(name: 'bass')
categories << Category.create(name: 'synth')
categories << Category.create(name: 'effects pedal')
categories << Category.create(name: 'amplifier')
2 голосов
/ 27 декабря 2011

Не связано, но когда модель оканчивается на 's', как Статус, вы также получаете ошибку.Я столкнулся с той же проблемой, так что это может помочь некоторым googlers

1 голос
/ 24 октября 2011

Вы создавали классы моделей в отдельном файле для каждого?Раньше я помещал два класса в один файл (например, классы отношений заголовка и деталей), думал, что ими будет легче управлять, но это было причиной неудачи db: seed!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...