仅为 Rake 任务运行初始化程序

发布于 2024-10-05 13:15:14 字数 85 浏览 1 评论 0原文

我希望在执行 Rake 任务时运行某个初始化程序,但在运行 Rails 服务器时不运行。

区分 Rake 调用和服务器调用的最佳方法是什么?

I'd like a certain initializer to run when executing a Rake task, but not when running the Rails server.

What is the best way to differentiate a Rake invocation and a server invocation?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

暮色兮凉城 2024-10-12 13:15:14

Rake 允许您指定任务的依赖关系。最好的建议操作是将特定于 rake 的初始化放入其自己的任务中,而该任务又取决于“环境”任务。例如:

namespace :myapp do
    task :custom_environment => :environment do
        # special initialization stuff here
        # or call another initializer script
    end

    task :my_task => :custom_environment do
        # perform actions that need custom setup
    end
end

如果您想像 Rails 那样创建一个特定于 rake 的初始化脚本目录,我们只需在 :custom_environment 任务中实现即可。

task :custom_environment => :environment do
    Dir.glob("config/rake-initializers/*.rb").each do |initializer|
        require initializer
    end
end

这允许您将特定于 rake 的初始化器与常规初始化器分开。您只需记住依赖于您设置的 :custom_environment 即可。

Rake allows you to specify dependencies for your tasks. The best recommended action would be for you to put your rake-specific initialization in its own task that in turn depends on the "environment" task. For example:

namespace :myapp do
    task :custom_environment => :environment do
        # special initialization stuff here
        # or call another initializer script
    end

    task :my_task => :custom_environment do
        # perform actions that need custom setup
    end
end

If you want to make a rake-specific directory of initializer scripts like we have for rails proper, we would just implement that in our :custom_environment task.

task :custom_environment => :environment do
    Dir.glob("config/rake-initializers/*.rb").each do |initializer|
        require initializer
    end
end

This allows you to keep rake-specific intializers separate from the regular initializers. You just have to remember to depend on the :custom_environment you set up.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文