私のプロジェクトでは、libフォルダーの下にいくつかのクラスを作成しましたが、railsは本番環境でそれらのクラスを検出していません。初期化されていない定数エラーが発生します。
私は本番環境でApacheを使用し、開発環境でRailsスクリプト/サーバーを使用しています。
RAILS_ROOT環境に何か問題がありますか?誰かがこの問題を克服する方法を提案できますか?
私のプロジェクトでは、libフォルダーの下にいくつかのクラスを作成しましたが、railsは本番環境でそれらのクラスを検出していません。初期化されていない定数エラーが発生します。
私は本番環境でApacheを使用し、開発環境でRailsスクリプト/サーバーを使用しています。
RAILS_ROOT環境に何か問題がありますか?誰かがこの問題を克服する方法を提案できますか?
Railsについてはよくわかりませんが、Rubyでは次のようにして実現できます:(レールでも機能しますが、レールにはエレガントな方法が必要です)
require File.join(File.dirname(__FILE__), "lib",'your_module_name')
include your_module_name
これを試してみてくださいconfig/application.rb
(私はあなたがrails3を持っていると思います)
config.load_paths += %W( #{config.root}/lib )
ファイルの名前が、ディレクトリを考慮して、ファイルで定義されているクラスまたはモジュールの名前と一致していることを確認してください。
すなわち:
lib/my_new_class.rb
class MyNewClass
end
または、ディレクトリ階層がある場合:
lib/my_files/my_module.rb
module MyFiles
module MyModule
end
end