我想定义一个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环境。之后,您的用户对象将在范围内