Rails Rake任务-访问模型类

我想定义一个Ruby(1.9.2)-on Rails(3.0.5)rake任务,它将用户添加到用户表中。该文件如下所示:

#lib/tasks/defaultuser.rake
需要“耙子”
名称空间:defaultuser do
任务:adduser do
u=用户。新
u、 电子邮件=”[email protected]"
u、 password=“password”
u、 拯救
u、 错误。每个{e | pe}
终止
终止

然后,我将调用该任务作为

>rake defaultuser:adduser

我在Rails控制台中的:adduser任务中测试了代码,它运行良好。
我测试了rake任务,仅运行

打印“defaultuser:adduser”

在任务主体中,它工作得很好

然而,当我把它们结合在一起时,它抱怨说

rake中止!
未初始化常量用户

我试了一个

需要文件。展开\u路径('../../../app/models/user.rb',\u文件\u)

在rake文件中的名称空间定义上方,但这不起作用。我得到

rake中止!
ActiveRecord::ConnectionNotEstablished

我需要做什么才能在Rake任务中拥有与Rails控制台中相同的用户模型类访问权限

你很接近:)

#lib/tasks/defaultuser.rake
需要“耙子”
名称空间:defaultuser do
任务:adduser=>:环境做什么
...
终止

注意:environment的使用,它在调用rake任务之前设置必要的Rails环境。之后,您的用户对象将在范围内

发表评论