Rails模型与其他模型作为实例变量

时间:2012-06-27 21:04:19

标签: ruby-on-rails-3 model

我正在构建一个包含DeveloperApplication的Rails应用程序。开发人员和应用程序都是对象,其内容来自外部API。因此,这两个模型都是手写的,不利用ActiveModel,ActiveResource等。

我正在尝试确定如何将Application对象实例化为Developer对象的实例变量。

我的Developer.initialize()函数中包含以下代码:

@apps = Array.new
data['applications'].each do |app|
  @apps << Application.new(app)
end

代码是相当自我解释的。 developer.rb(定义Developer的位置)和application.rb(定义了Application的位置)都位于app/models目录中。我的开发人员控制器通过调用Developer.new来实例化Developer对象。

do块中的代码行会产生以下错误:

uninitialized constant Developer::Application
app/models/developer.rb:24:in `initialize'
app/controllers/developers_controller.rb:11:in `new'
app/controllers/developers_controller.rb:11:in `show'

所以看起来Rails试图实例化Developer :: Application,而我想实例化application.rb目录中app/models中定义的Application对象。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

您必须要求必要的文件。就我而言,在Developer类中,我需要以下行:require 'application.rb',一切正常。