简体   繁体   English

NameError:未初始化的常量Person :: RAILS_ROOT

[英]NameError: uninitialized constant Person::RAILS_ROOT

In 'lib/tasks/admin.rake': 在'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) : 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. 我如何在模型中调用call_rake中的admin:fake_people 。请帮助我,我已经失去了一整天。

Try: 尝试:

Rails.root

Because probably you have RoR 4. RAILS_ROOT was work fine in RoR 2 or 3. 因为你可能有RoR 4. RAILS_ROOT在RoR 2或3中运行良好。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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