ruby-on-rails – 用于添加默认数据的Rake任务
我看到一些应用程序包含一些rake任务来加载数据.我不是在谈论种子数据,我知道db / seeds.rb,而是指的是默认用户和基本记录等数据,这些数据可以帮助我填写我的应用程序.我不想使用db:fixtures:load因为我对此没有任何控制权…
我想要像这样的rake任务: rake myapp:data:delete rake myapp:data:load rake myapp:data:reload ‘delete’rake任务将删除我在rake任务中指定的所有数据,’load’应用程序会将任务中的默认数据加载到app中,’reload’任务将删除所有数据,然后将其加载该应用程序.我该怎么办? 如果你能给我一个例子,我有一个名为’Contact’的模型和一些字段 – 基本上如何在rake任务中添加或删除这些字段中的数据,我真的很感激! 只是为了给你一个想法,当我从一台计算机移动到另一台计算机进行开发时,我主要使用这些rake任务.我不想手动输入默认记录(例如我的用户登录)所以我可以做rake myapp:data:reload – 这将是在做rake db:schema:load之后 谢谢, BN 解决方法
创建文件lib / tasks / data.rake并编写以下代码:
require File.join(File.dirname(__FILE__),'../../config/environment') require 'database_cleaner' namespace :myapp do namespace :data do task :delete do DatabaseCleaner.strategy = :truncation DatabaseCleaner.clean end task :load do require 'db/data.rb' end task :reload do Rake::Task['myapp:data:delete'].invoke Rake::Task['myapp:data:load'].invoke end end end 所以现在你已经定义了你的rake任务了.我正在使用gem database_cleaner,所以你需要安装它: sudo gem install database_cleaner 现在,rake myapp:data:load基本上是从一个名为db / data.rb的文件中加载数据.只要你在rake任务中使用了文件名,就可以将它命名为你想要的任何东西,或者你可以使用多个文件…所以创建文件db / data.rb并放入你需要的所有代码… User.create(...) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |