2011-03-20 8 views
7

私はレール3.0.5アプリを持っています。私はレシピを使うためにカピストラーノを設定しています。require in capistrano deploy.rbファイルが見つかりません

 
require 'database_capistrano' 

しかし、私:私のconfigディレクトリに

私はまた、configディレクトリに、私はほんの始まりに、次の行を持って、「database_capistrano.rb」と私のdeploy.rbで指定されたファイルを持っています「M取得:また

 
`require': no such file to load -- capistrano_database (LoadError) 

で試してみてください。

 
require 'database_capistrano.rb' 

と動作しません...

Rails 3.0.5では、どのようにcapistrano deploy.rbにファイルをインクルードするのですか?

答えて

11

[OK]を、私はこれを行う方法を見つけることができます。

ただ唯一の組織のために、新しいサブディレクトリ「展開」へファイルをコピーし、そして私のdeploy.rbの先頭に、コメントを追加しました:

 
$LOAD_PATH.unshift File.join(File.dirname(__FILE__), 'deploy') 

その後、deploy.rbで、ちょうど使用します:

将来の訪問者のための
 
require 'database_capistrano' 
+0

感謝し、それを適応させる方法を理解didntのため、また、この問題を持っていた少しの回避策っぽい、と半分に見えたので

は、率直に言って、私は半分、受け入れ答えをしようとしませんでしたこれで解決しました。私が最初に問題を理解して欲しい=) – DavveK

+0

カピストラーノのレシピが必要です。レシピを保存する場所を、rubyの$ LOAD_PATH変数に追加して、それを見つける必要があるようにする必要があります。 – BeepDog

+1

構造体app-> config-> deploy-> database_capistrano.rbも同様です。私はまだファイルを見つけられなかったことについて間違いをしています。私はroot dir、config dir、deploy dirを試しました... – Danny

0

、私はCapistrano: deploy.rb file refactoring

すなわち代わりのrequireloadを使用で見つかった答えとのより良い結果を得ました。そのファイルがバンドル内の宝石またはバンドル内にある他の宝石を必要とするファイルである限り、これは機能します。それは私が完全に私の状況のた​​め

+0

メソッドをロードするためのドキュメントへのリンクを追加してください。 –

+0

@ArnoldRoa私はドキュメントを見つけることができませんでしたが、メソッドはCap 2でここに定義されています。https://github.com/capistrano/capistrano/blob/legacy-v2/lib/capistrano/configuration/loading.rb –

関連する問題