6

Rails の Lib フォルダーの命名規則に問題があるようで、提供されたエラー メッセージは役に立ちません。[たとえば、XXX::YYY::TextBox は xxx/yyy/text_box.rb で定義されているはずだというメッセージを受け取りましたが、ここでは明確に定義されています。

私が YourModule::MyModule::MyClass に取り組んでいるとしましょう。このファイルは次の場所にあるはずです。

lib/your_module/my_module/my_class.rb

しかし、ここにある実際のファイルはどのように見えるでしょうか? これらのうち、どちらが正しいですか (どちらかである場合)?

#your_module/my_module/my_class.rb
module YourModule
  module MyModule
    class MyClass
       ...
    end
  end
end

または

#your_module/my_module/my_class.rb
class MyClass
  ...
end

つまり、モジュール構造内にクラスをネストする必要がありますか?

4

1 に答える 1

7

lib フォルダーは自動ロードされないため、規則はほとんどありません。したがって、ファイルをどのように編成するかは自由ですが、クラスに正しい名前を付ける必要があります。最初の例は正しいです。

含まれるファイルを取得するには、application.rb ファイルで指定する必要があります。次の例を参照してください: Rails 3 の lib フォルダーからモジュール/クラスをロードする最良の方法?

lib/modulesおそらく多くはないので、という名前のフォルダを作成することをお勧めします。ファイルに名前を付けますmy_class.rb。次に、次のapplication.rbものが必要です。

config.autoload_paths += %W(#{config.root}/lib/modules)

それはあなたの問題を処理するはずです。

于 2012-04-15T23:30:55.740 に答える