我有一個Rails 3應用程序,它定義了一些非ActiveRecord模型。所有這些都在app/models/module_name
中定義。我在all_autoload_paths如下:Rails加載非ActiveRecord模型
[4] pry(main)> app._all_autoload_paths
=> ["/Users/mandar/myapp/lib",
"/Users/mandar/myapp/app/assets",
"/Users/mandar/myapp/app/controllers",
"/Users/mandar/myapp/app/helpers",
"/Users/mandar/myapp/app/models"]
有間如何加載模型時,以下2類定義的處理方式有區別嗎?
module A
class X
# some code
end
end
和
class A::Y
# some code
end
我之所以問這個是有時候我見過一個uninitialized constant A::Y - NameError
錯誤。
更新:繼Sibevin的回答之後,我想說明一下。目前,我有以下文件結構:
app
- models
- a
- x.rb
- y.rb
我已經看到它使用ModuleName::ClassName
語法Y的錯誤,但幾乎從不爲X.
感謝您的幫助!
這就是我目前的文件結構。對不起,不準確。我會相應地更新問題。 –