访问子文件夹中的模型

时间:2012-09-25 08:47:56

标签: ruby-on-rails-3

我遇到了关于访问子文件夹中的模型的问题。我的项目中有以下文件结构:

app/models
   - accounts
     - type1.rb #Inherits from Account
     - type2.rb #Inherits from Account
     - etc.   
   - account.rb
   - user.rb
   - etc.

现在在user.rb中我有一个试图创建type1或type2帐户的函数:

def function
   self.account = ::Type1.new(...)
end

知道我添加到我的application.rb(http://blog.hasmanythrough.com/2008/5/6/a-simple-alternative-to-namespaced-models之后)以下行:

config.autoload_paths += Dir["#{config.root}/app/models/**/"]

以便确实加载了模型子文件夹。

现在,当我调用该函数时,我仍然收到着名的uninitialized constant Type1错误消息。我错过了什么?

更新

Type1类为空:

class Type1 < Account
end

并且Account类很简单:

class Account < ActiveRecord::Base

#======================RELATIONS======================
  belongs_to :currency
  belongs_to :organization

#======================VALIDATIONS=========================
  validates :name, :presence => true
  validates :country, :presence => true
  validates :currency, :presence => true
  validates :organization, :presence => true
end

2 个答案:

答案 0 :(得分:3)

试试这个

config.autoload_paths += Dir[Rails.root.join('app', 'models', '{**}')]

答案 1 :(得分:0)

好的,我终于找到了这件事。这个想法来自这个页面:Rails 3 library not loading until require

我的问题实际上是文件名wat不尊重类的CamelCase名称......