Ruby onRails3.2.9を使用しています。カスタムバリデーターに関連する「'lib'ディレクトリのサブディレクトリでRailsを拡張する際の問題」を解決する方法は、次のコードを記述することでした(ファイルが配置されているディレクトリに注意してください)
# lib/extension/rails/custom_validator.rb
class CustomValidator < ActiveModel::EachValidator
# ...
end
そしてconfig.autoload_paths += %W(#{config.root}/lib/extension/rails)
、ステートメントをconfig/application.rb
ファイルに入れます。このようにしてCustomValidator
、サーバーの起動時にが正しくロードされ、lib/
ディレクトリが期待どおりに整理されます。
しかし、それがRoRでこのようなものを作るための「適切な」/「正しい」方法であるかどうかを知りたいと思います。言い換えれば、同じことを達成するためのより良いアプローチはありますか?
注:コードをファイルに整理するために、次のようにクラスの名前空間を作成することを考えています。
# lib/extension/rails/custom_validator.rb
module Extension
module Rails
class CustomValidator < ActiveModel::EachValidator
# ...
end
end
end
しかし、上記のコードを使用すると、ファイルに記述したCustomValidator
としても、を機能させる簡単な方法はないようです。config.autoload_paths += %W(#{config.root}/lib)
config/application.rb