2013-08-21 52 views
0

目錄:無法在Rails應用程序初始化類

原型

-app

-assets

-controllers

--- welcome_controller.rb

domainobject小號

--- 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 

從我在這裏和在網上研究,這意味着我沒有正確引用文件。爲了測試這一點,我嘗試在「require_relative」語句中錯誤地命名它,並且框架告訴我所請求的文件無法加載。所以看起來Rails正在尋找我的類,它不會因爲某種原因而初始化它。

最令人發狂的部分是,我會對SimilarJob做一些小的改動,重啓我的服務器,並且它會突然工作。如果我再次停止並啓動服務器,則返回到下面粘貼的錯誤。

這是我第一次真正在挖掘.NET MVC或KnockoutJS以外的東西..你們會介意指出我的錯誤嗎?

編輯:我用這個控制器的生成命令,所以所有的意見和路線適當地工作。事實上,如果我註釋掉有問題的行,我在我的JSON響應的最後一行中引用的屬性會呈現給文件。

編輯v2:奇怪的是,足夠了..把我的班級名稱改爲喬​​布斯(一個詞)正在擺脫這個錯誤。這是離奇的!任何人都可以確認這是我的問題嗎?

回答

2

名稱很重要,您已將您的文件命名爲錯誤。 SimilarJob.rb需要是similar_job.rb

同樣,你的API文件應該被稱爲api.rb,它定義的類應該被稱爲Api。這件事很重要,因爲你已經偏離了Rails約定,並且正在爲此而痛苦。

+0

好吧,學習==痛苦。謝謝! – sean

相關問題