耙中止!无法在 Rails 上加载此类文件 Ruby

rake aborted! cannot load such file Ruby on Rails

我正在尝试 运行 一个 ruby 使用 rake 任务更新数据库的文件。但是超时我 运行 代码,我收到一条错误消息: 耙中止! 无法加载此类文件 -- app/services/insert_data

ruby 文件 'insert_data' 位于 app 目录下名为 'services'

的文件夹中

这是我为 运行 创建的 rake 任务:

require 'app/services/insert_data'

namespace :record_generate do


task :test do
  ruby "app/services/insert_data"
end


end

请帮助消除这个错误。

我认为您应该尝试将 app/services/insert_data 放在脚本目录中。我假设您的 ruby 文件不是具有逻辑的 rails 模型。我会试试这个。

  1. 获取您的文件并将其放在 /script/ 目录中。

  2. 将这行代码放在文件的顶部

    #! /usr/bin/env ruby

    require_relative "../config/environment"

现在您可以在命令行上执行此操作:

rails runner name_of_your_file

这是一种方法。如果您特别需要使用 rake 任务,我也可以尝试发布一个答案。

为了能够在 rake 任务中使用 Rails 环境,您需要声明:

namespace :record_generate do    
    task :test => :environment do |_, args|
       ruby "app/services/insert_data"
    end
end

在你的任务中 :test block try -

Rake.application.rake_require "#{Rails.root}/app/services/insert_data"