简体   繁体   中英

rake aborted! cannot load such file Ruby on Rails

I am trying to run a ruby file that updates the database using the rake task . But overtime I run the code, I get an error saying : rake aborted! cannot load such file -- app/services/insert_data

The ruby file 'insert_data' is located under the app directory in a folder named 'services'

Here is the rake task I created to run it:

require 'app/services/insert_data'

namespace :record_generate do


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


end

Please help in removing this error.

To be able to use Rails environment within a rake task you need to declare that:

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

I think you should try placing your app/services/insert_data inside the script directory. I'm assuming that your ruby file is not a rails model with logic. I would try this.

  1. Get your file and place it in the /script/ directory.

  2. Place these line of code at the top of your file

    #! /usr/bin/env ruby

    require_relative "../config/environment"

Now on your command line you can do execute this:

rails runner name_of_your_file

That is one way of doing it. If you specifically need to use a rake task I can try posting an answer for that too.

在您的任务中:测试块尝试-

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM