2012-08-16 73 views
0

在我的應用程序中,我有一個sing_up_page,它有一個具有顯示role_type的drop_down_list的sing_up_form。如何在應用程序啓動或重新啓動時在數據庫中創建記錄

角色類型是在應用程序的類中,我已啓動應用程序之前手動存儲在數據庫中的記錄

insert into role_type (id,name) values (1,'user'); 
insert into role_type (id,name) values (1,'admin'); 
insert into role_type (id,name) values (1,'vender'); 

。移動到sing_up_page之前,我做

@role_type=RoleType.all

使下拉可以用它來顯示role_types但我想如果他們是生產這些記錄在應用程序的啓動時間程序,而不用手動創建記錄數據庫就像Groovy在Grails上一樣。

回答

2

如果您在app/config/initializers/中創建了.rb文件,它將在服務器加載時執行。

例子:

app/config/initializers/seed.rb

%w{user admin vendor}.each do |role| 
    RoleType.create(:name => role) 
end 

每次服務器負載,這些記錄將被創建。

問題:爲什麼這些記錄沒有保留在您的數據庫中?你或其他人刪除了它們嗎?

+0

我希望這些記錄只能在第一次在其他機器/服務器上運行時創建一次。之後他們會發表評論。 – 2012-08-17 11:56:17

+0

你可以檢查'RoleType'是否存在,或者使用內建'rake db:seed'命令在db/seed.rb中運行種子文件,但是必須手動運行該命令。 – Kyle 2012-08-17 12:55:52

相關問題