ディレクトリ:
プロトタイプ
-アプリ
-資産
-コントローラー
---welcome_controller.rb
ドメインオブジェクト
---SimilarJob.rb
ユーティリティ
--API.rb
コントローラーコード
require_relative '../domainobjects/SimilarJob'
class WelcomeController < ApplicationController
def index
foo = API.new('DEVKEY')
res = foo.RetrieveFacts("Test", "Me")
#newResult = SimilarJob.new("test") <-- Failing Line!!!
render :text => res["Response"]["IsInternationalResponse"]
end
end
オブジェクトコード
class SimilarJob
end
私はいくつかのものを取り除きましたが、API クラスは別のディレクトリ "Utilities" に存在し、何らかの理由で "requires_relative" キーワードを使用して参照する必要さえありません。これは、HTTParty を含むラッパー クラスであり、外部 API への GET 要求を毎回成功させます。どこにも参照する必要がないように見える理由を誰かが説明できますか?
または、SimilarJob クラスを初期化しようとすると毎回失敗します。エラーは次のとおりです。
uninitialized constant WelcomeController::SimilarJob
私がこことウェブで調査したことから、これはファイルを正しく参照していないことを意味します。これをテストするために、「requires_relative」ステートメントで間違った名前を付けようとしましたが、フレームワークは、要求されたファイルをロードできなかったと通知しました。Railsが私のクラスを見つけているようですが、何らかの理由で初期化されません。
最も腹立たしいのは、SimilarJob にいくつかの小さな変更を加え、サーバーを再起動すると、突然動作するようになることです。サーバーを停止して再起動すると、下に貼り付けたエラーに戻ります。
.NET MVC や KnockoutJS 以外のものを実際に掘り下げるのはこれが初めてです。私のやり方の誤りを指摘していただけませんか?
編集: このコントローラーに generate コマンドを使用したため、すべてのビューとルートが適切に機能します。実際、問題のある行をコメント アウトすると、JSON 応答の最後の行で参照しているプロパティが問題なくファイルにレンダリングされます。
EDIT v2: 奇妙なことに、クラス名を Jobs (一言) に変更すると、このエラーが解消されます。これは奇妙に見えます!これが私の問題であることを誰かが確認できますか?