1

Developers を持つsを含む 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.rb(Application が定義されている場所) の両方が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 をインスタンス化しようとしているように見えますが、ディレクトリapplication.rb内で定義されている Application オブジェクトをインスタンス化したいのです。app/modelsこれを行う方法はありますか?

4

1 に答える 1

1

必要なファイルを要求する必要があります。私の場合、Developer クラス内から、次の行が必要でした:require 'application.rb'すべてが正常に機能しました。

于 2012-07-02T16:24:38.250 に答える