私は gemified エンジンを持っています。このエンジンには、ファイル名から const_get を使用してデータベースの基本的なものを入力する関数があります。
私はまだレールに慣れていないことに注意してください。
私が望むのは、エンジンが定数が最初に存在するかどうかをテストし、そうでない場合は、アンダースコアのケースの最初のオブジェクトを定数名の一部ではなく名前空間に変換することです。
今defined?
これらはすべて「ロードパス内」のものであるため、ここでは機能しません。したがって、まだロードされていない場合は認識されません。この時点で、開発環境と本番環境の方法にはいくつかの違いがあることを理解しています私は違いを完全には理解していませんし、違いの完全なドキュメントを見つけることもできませんでした。したがって、基本的に私が望むのは、次のスタイルで何かを機能させることです。
def get_namespaced_class(underscored_name)
...
end
get_namespaced_call('mygem_some_class') #returns Mygem::SomeClass class
私の見方では、メソッドは最初MygemSomeClass
に到達可能かどうかを確認してから、名前空間オプションの確認を開始します。
私が本当に避けたいことの1つは、NameError
私が見ているのは汚いと間違っていると思うことです。到達できるものを調べたいです。そうする方法があるはずです。 .