Ruby on Rails:我应该如何以及在何处将持久数据添加到我的数据库中?

时间:2011-03-16 15:45:56

标签: ruby-on-rails ruby ruby-on-rails-3

我对RoR很新,我正在为用户开发一些基于角色的基本权限模型。

但是,我希望默认情况下某些角色在数据库中,我在哪里将相应的行插入到我的数据库中?

到目前为止,我是在一个单独的迁移中完成的,只是'创建!'是各自的对象。

但是,如果我运行rake db:migrate && rake db:test:prepare,则只有我的开发数据库会填充数据,而test-db只更新其模式并保持为空。

那么,我如何/在何处将此类默认数据插入我的数据库?

thx任何帮助

4 个答案:

答案 0 :(得分:0)

我找到了一个很好的宝石,对于处理seed-fu这样的场景很有意思。

答案 1 :(得分:0)

我会使用迁移来形成数据库的数据 - 这是应用程序的基本部分。但是db / seed.rb(rake db:seed)也是一个很好的方法 - 如果你不希望在投入生产后发生重大变化。


没有办法是完美的,迁移中的数据不会存储到模式中以恢复测试数据库,但调用两次相同的seed.rb也不是很好。在重新运行/

时,不要忘记使逻辑足够智能化以避免冲突

答案 2 :(得分:0)

您可以在此处找到我对类似问题的回答:prepopulating admin user in database with authlogic rails plugin

基本上rails有一个名为db / seed.rb的文件,您可以在默认情况下放置需要添加的内容,然后运行“rake db:seed”来加载它。

答案 3 :(得分:0)

我使用seed-fu,非常容易使用,并且可以完全满足您的需求。