2011-07-03 48 views
3

我使用ruby 1.9.2和rails 3.0.9。db:種子拋出一個錯誤

每當我試圖執行耙分貝:種子,它拋出以下錯誤:

rake aborted! 
uninitialized constant EmployeeCategory 

我已經禁用線程並啓用了「在配置/ application.rb中文件dependency_loading。

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} 
]) 
+0

請問您的應用程序是否可以在rails s上正常運行? – Dogbert

+0

向我們展示seed.rb包含 –

+0

rails在我的工作站上運行的文件。 – CodeMaster123

回答

7

這可能是一個明顯的例子的內容,但你有你的employee_category.rb模型/模型產生的?發現每當我得到這個錯誤時,我創建視圖,控制器和路由,但忘記了一些簡單的事情,比如添加模型文件。

1

您是否在單個文件中爲每個文件創建模型類?我曾經把兩個類放在一個文件中(例如一個頭文件和詳細信息關係類),認爲管理它們會更容易,但這是原因db:seed失敗!

2

不相關,但當模型以狀態結尾時,您也會收到錯誤。我面臨同樣的問題,所以這可能會幫助一些googlers

4

我解決了這個問題,確保我引用我的模型,而不是我的控制器在我的seed.db數據。我的控制器被命名爲Categories,我的模型被命名爲category。

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')