[英]Rails Rake Task - Access to model class
我想定義一個Ruby(1.9.2)-on-Rails(3.0.5)rake任務,它將用戶添加到User表中。 該文件如下所示:
#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
我需要做什么才能在Rails控制台的Rake任務中對User模型類具有相同的訪問權限?
你很接近:)
#lib/tasks/defaultuser.rake
require 'rake'
namespace :defaultuser do
task :adduser => :environment do
...
end
注意使用:environment,它在調用rake任務之前設置必要的Rails環境。 之后,您的User對象將在范圍內。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.