Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在每次db:reset之后执行“rake任务”_Ruby On Rails_Ruby_Ruby On Rails 3_Rake - Fatal编程技术网

Ruby on rails 如何在每次db:reset之后执行“rake任务”

Ruby on rails 如何在每次db:reset之后执行“rake任务”,ruby-on-rails,ruby,ruby-on-rails-3,rake,Ruby On Rails,Ruby,Ruby On Rails 3,Rake,我在做一个私人项目,我有一个奇怪的疑问。在本地主机上,我几乎每次都执行rake db:reset,并且我总是需要运行另一个名为newsweer:create的任务,换句话说,我运行rake newsweer:create 我的问题是: 如何在每次rake db:reset之后执行特定的rake任务? 如何将上述问题推广到rakedb:create和其他任务? 谢谢 在我看来,最好的方法是创建自己的rake任务,调用避免更改Rails/rake基本任务所需的所有任务: # lib/tasks/re

我在做一个私人项目,我有一个奇怪的疑问。在本地主机上,我几乎每次都执行rake db:reset,并且我总是需要运行另一个名为newsweer:create的任务,换句话说,我运行rake newsweer:create

我的问题是: 如何在每次rake db:reset之后执行特定的rake任务? 如何将上述问题推广到rakedb:create和其他任务?
谢谢

在我看来,最好的方法是创建自己的rake任务,调用避免更改Rails/rake基本任务所需的所有任务:

# lib/tasks/reset_and_create
namespace :database do
  desc 'Reset the database to a fresh and clean DB ready for use'
  task :reset_and_create do
    Rake::Task['db:reset'].invoke
    Rake::Task['newsworker:create'].invoke
    # if you need to pass arguments to your tasks, use:
    # Rake::Task['your_task'].invoke(your_arg, another_arg)
  end
end
然后像这样使用它:

rake database:reset_and_create

在我看来,最好的方法是创建自己的rake任务,调用避免更改Rails/rake基本任务所需的所有任务:

# lib/tasks/reset_and_create
namespace :database do
  desc 'Reset the database to a fresh and clean DB ready for use'
  task :reset_and_create do
    Rake::Task['db:reset'].invoke
    Rake::Task['newsworker:create'].invoke
    # if you need to pass arguments to your tasks, use:
    # Rake::Task['your_task'].invoke(your_arg, another_arg)
  end
end
然后像这样使用它:

rake database:reset_and_create

谢谢但有一个简短的问题:如果我可以将任务添加到:数据库名称空间,我可以覆盖默认的db:reset任务吗?我认为您可以,但我认为您不应该这样做。我不确定您是否可以安全地在:db名称空间中创建任务。好的,我希望有更多知识的人能够回答我的评论中的这个问题。无论如何,谢谢你对官方问题的回答:谢谢!但有一个简短的问题:如果我可以将任务添加到:数据库名称空间,我可以覆盖默认的db:reset任务吗?我认为您可以,但我认为您不应该这样做。我不确定您是否可以安全地在:db名称空间中创建任务。好的,我希望有更多知识的人能够回答我的评论中的这个问题。无论如何,谢谢你对官方问题的回答: