Uday kumar das
Uday kumar das

Reputation: 1613

NameError: uninitialized constant Person::RAILS_ROOT

In 'lib/tasks/admin.rake':

require 'rake'
namespace :admin do
  desc "TODO"
  task fake_people: :environment do
    print "How many fake people do you want?"
    Person.all.each do |p|
      print p.first_name + ' ' + p.last_name + '********'
    end
  end
end

In Person.rb(model):

require 'rake'

class Person < ActiveRecord::Base
  def admin
    load File.join(RAILS_ROOT, 'lib', 'tasks', 'admin.rake')
    Rake::Task["admin:fake_people"].invoke
  end 
end

How do i call admin:fake_people from call_rake in model.Please help me i have lost a whole day.

Upvotes: 2

Views: 1272

Answers (1)

bondarenko.dev
bondarenko.dev

Reputation: 146

Try:

Rails.root

Because probably you have RoR 4. RAILS_ROOT was work fine in RoR 2 or 3.

Upvotes: 4

Related Questions