我正在构建一个包含Developer
个Application
的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对象。有没有办法做到这一点?
答案 0 :(得分:1)
您必须要求必要的文件。就我而言,在Developer类中,我需要以下行:require 'application.rb'
,一切正常。