1

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

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

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

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

该代码是相当不言自明的。developer.rb(定义 Developer 的地方)和(定义 Application 的地方)都application.rb位于app/models目录中。我的开发者控制器通过调用来实例化一个 Developer 对象Developer.new

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,而我想实例化目录中定义的 Applicationapplication.rb对象app/models。有没有办法做到这一点?

4

1 回答 1

1

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

于 2012-07-02T16:24:38.250 回答