私の単純なレーキタスクは、lib/tasks/items_spider.rake
に保存されています。それはItem
モデルのspider!
となります。Rails 3レーキタスクは生産現場でモデルを見つけることができません
namespace :items do
desc "Spider the web for data, hoorah"
task :spider => :environment do
Item.spider!
end
end
私は:environment
タスクを依存関係として持っているので、すべてうまく動作します。私はRAILS_ENV=production
を追加するときしかし、私は両方の私のローカルサーバーと本番サーバー上で、エラーをヒット:
$ rake items:spider RAILS_ENV=production --trace
(in /home/matchu/Websites/my-rails-app)
** Invoke items:spider (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute items:spider
rake aborted!
uninitialized constant Object::Item
/home/matchu/.rvm/gems/[email protected]/gems/rake-0.8.7/lib/rake.rb:2503:in `const_missing'
/home/matchu/.rvm/gems/[email protected]/gems/rspec-core-2.0.0.beta.22/lib/rspec/core/backward_compatibility.rb:20:in `const_missing'
/home/matchu/.rvm/gems/[email protected]/gems/rspec-expectations-2.0.0.beta.22/lib/rspec/expectations/backward_compatibility.rb:6:in `const_missing'
/home/matchu/Websites/openneo-impress-items/lib/tasks/items_spider.rake:4:in `block (2 levels) in <top (required)>'
/home/matchu/.rvm/gems/[email protected]/gems/rake-0.8.7/lib/rake.rb:636:in `call'
[...trace of how rake gets to my task...]
これだけの私には奇妙に思えます。明らかに、モデルは正しくロードされていません。私はRails 3.0.3を使っていますが、このアプリの開発はRails 3がベータ版になってから始まりました。この問題をデバッグするにはどうすればよいですか?ありがとう!
ここで少し手を伸ばす、しかし、あなたは、コマンドの先頭にRAILS_ENV宣言を移動しようとしましたか? –
@Peer:no go :(ありがとう! – Matchu
'Item'モデルはどこに保管されていますか?通常の場所? –