2012-04-15 8 views
4

私は、RailsでのLibフォルダの命名規則に問題があるようです。私に提供されるエラーメッセージは役に立ちません。 [たとえば、XXX :: YYY :: TextBoxがxxx/yyy/text_box.rbに定義されているとのメッセージが表示されています(明確に定義されていますが)。私は規約を間違っていると思います。Ruby Rails Libフォルダ命名規約

私は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 

、私はモジュール構造の内部やない巣にクラスが必要なのでしょうか?

答えて

5

libフォルダには、オートロードされていないため、慣習がほとんどありません。だから、どのようにファイルを整理するかはあなた次第ですが、クラス名を正しく指定する必要があります。あなたの最初の例は正しいです。ファイルを取得する

は、この例を参照してください、あなたのapplication.rbファイルにあなたがそれらをしたい指定する必要が含ま:Best way to load module/class from lib folder in Rails 3?

あなたはおそらく非常に持っていないので、私は、ちょうど lib/modulesというフォルダを作っ勧め

たくさんの。ファイル名をmy_class.rbとします。その後application.rbに次のものが必要です。あなたの問題の世話をする必要があります

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

を。