我的apps / model文件夹看起来像这样:
models/
module/
category.rb
category.rb
但我似乎无法找到正确自动加载模块/类别的方法:我总是有错误Expected /app/models/module/category.rb to define Category
。
截至目前,我只看到两个选项:不将其添加到自动加载,或将module/category.rb
重命名为module/module_category.rb
,这似乎都不是一个好主意
答案 0 :(得分:1)
我认为在您的情况下最好的做法是将B1
添加到module/category.rb
目录中。
从lib
抓取代码并创建category.rb
文件。
然后将您的模块代码包含在lib/category.rb
在app/models/category.rb
中,请务必加载application.rb
目录lib
。
config.autoload_paths << "#{Rails.root}/lib
我个人不会这样做。这个命名令人困惑。您是否尝试过命名代码?
例如,你也可以试试这个:
class Category < ActiveRecord::Base
include Category
然后在 models/
category/
category_something.rb #change the name of the file to something else
category.rb
category_something.rb
然后就这样你可以像模块一样使用代码。