2011-03-16 24 views
1

我是RoR的新手,我正在爲用戶開發一些基本的基於角色的權限模型。Ruby on Rails:如何以及在哪裏添加持久數據到我的數據庫?

但是,我希望一些角色在數據庫中默認情況下,我在哪裏插入相應的行到我的數據庫?

到目前爲止,我正在做一個單獨的遷移,只是「創建!」的各個對象。

但是,如果我運行rake db:migrate && rake db:test:prepare,只有我的開發數據庫獲得數據填充,而測試數據庫只更新其架構並保持爲空。

那麼,如何/我在哪裏插入這樣的默認數據到我的數據庫?

THX任何幫助

回答

0

我已經找到了一個很好的的寶石,是處理這種場景是seed-fu有趣。

0

我會使用遷移數據形成數據庫 - 這是應用程序的基本部分。但是db/seed.rb(rake db:seed)也是一個很好的方法 - 如果你不希望在生產後發生重大變化。


沒有辦法是完美的,在遷移數據不存儲到模式恢復測試數據庫,但調用兩次相同seed.rb也並不好。不要忘記重新運行時,使邏輯足夠的智能,不衝突/

+0

將行添加到帶有遷移的數據庫可能不是一個好主意,如果您想要使用schema.rb文件重新加載數據庫,那些行將不會被添加。種子是首選的方式。如果沒有,則每次要創建新安裝時都必須重新運行所有遷移。 – nkassis 2011-03-16 15:55:07

+0

是真的,那麼混合會很好,導致調用兩次'User.create(:login =>'admin')'也不是好東西 – mpapis 2011-03-16 15:58:09

0

我已經使用seed-fu,非常容易使用,並將完全符合您的需求。