未初始化的常量“ActionView”/不知道如何在 rake 任务中构建任务“环境”

时间:2021-01-06 15:58:15

标签: ruby-on-rails ruby-on-rails-5 rake rake-task uninitialized-constant

所以,我实际上有两个问题,但我敢打赌它们是相互关联的。

我必须在旧版应用程序上调用 rake 任务(该任务也是旧版),但遇到“不知道如何构建任务‘环境’”和“未初始化的常量”错误。我们正在使用 Rails 5.2 和 ruby​​ 2.5.1。

rake 文件位于 lib/tasks/migrations/models.build_stuff.rb

看起来像这样:

include ActionView::Helpers

namespace :migrations do
  namespace :build_stuff do
    task build_first_things: :environment do
      puts 'Starting building first things'
      FirstThings.each { |thing| thing.build! }
      puts 'Done!'
    end

    task build_second_things: :environment do
      puts 'Starting building second things'
      SecondThings.each { |thing| thing.build! }
      puts 'Done!'
    end
  end
end

所以,我调用第一个任务:

rake -f ./lib/tasks/migrations/models/build_first_things.rake migrations:build_stuff:build_first_things

这里出现以下错误:

rake aborted!
NameError: uninitialized constant ActionView

我知道,在我的示例中,甚至没有使用 ActionView 助手,在实际文件中,有。

如果仅出于测试原因,我删除了带有 include ActionView::Helpers 的行,则会引发另一个错误:

rake aborted!
Don't know how to build task 'environment' (See the list of available tasks with `rake --tasks`)

我不想调用任务“环境”,只需要加载应用程序并访问数据库。

有谁知道,为什么其中一个(或)两种情况都会发生?

非常感谢:)

*** 解决方案 ***

它在调用 bin/railsbundle exec rake 而不是简单的 rake 时有效。

0 个答案:

没有答案