我想定义一个 Ruby(1.9.2)on Rails(3.0.5)的 Rake 任务,用于将用户添加到用户表。文件看起来像这样:
#lib/tasks/defaultuser.rake
require 'rake'
namespace :defaultuser do
task :adduser do
u=User.new
u.email="bob@example.com"
u.password="password"
u.save
u.errors.each{|e| p e}
end
end
我会将任务作为以下方式调用:> rake defaultuser:adduser
我在Rails控制台中测试了“adduser”任务的代码,它可以正常工作。 我只运行了rake任务的测试。
print "defaultuser:adduser"
在任务主体中,它的工作正常。
然而,当我将它们结合起来时,它抱怨了,说:
rake aborted!
uninitialized constant User
我尝试了一下
require File.expand_path('../../../app/models/user.rb', __FILE__)
我将命名空间定义放在Rake文件中上方,但并没有奏效。我遇到了...
rake aborted!
ActiveRecord::ConnectionNotEstablished
我需要做什么,才能在Rake任务中获得与Rails控制台相同的访问用户模型类的权限?