簡體   English   中英

Rails Rake任務 - 訪問模型類

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM