2011-08-18 67 views
0

我有一個名爲「測試」的模型(我評論了該模型的所有內容,因此只剩下class Testend用於調試目的),每次我嘗試在軌道控制檯中實例化它我收到一個錯誤,說明「新」方法不存在Test:Module。實例化我的其他模型時,不會發生此錯誤,並且我認爲它與軌道控制檯正在加載Test :: Unit或類似的事實有關(在預感上,我運行了Test.constants並且控制檯返回了[:Unit] ,所以我很確定這是問題)。無論如何,毫無疑問,一些名爲Test的模塊正在由rails控制檯運行,我不希望發生這種情況。我如何避免這種情況?對我來說,將我的課程名稱改爲不同的價值會非常不方便,所以如果有什麼辦法可以解決這個問題,那將很棒〜!停止軌道控制檯從加載測試::單位

回答

1

我只是用一個簡單的解決方法來調用我的類「考試」而不是測試,但我想知道如何正確解決此問題,而無需解決該問題。

1

您可以添加一個模塊,並在其中包含測試類以避免該問題。然後你將需要像module :: class一樣處理你的類。

+0

我覺得這種方法有點混亂 - 我寧願有一段代碼運行,「取消定義」Rail控制檯似乎正在讀取的Test類。另外,如果我確實使用了這種封裝模塊方法,對我的其他代碼(數據庫訪問等)會有什麼影響? – Kvass

+0

此外,我一直在網上尋找,顯然命名空間模型是一個絕對麻煩/混亂的Rails - http://stackoverflow.com/questions/601768/namespaced-models-in-rails-whats-the-state-of -工會。所以我真的需要rails控制檯來加載Test :: Unit。 – Kvass

+1

這不是混亂,這正是模塊的用途。您只是試圖將方法添加到已定義的類中。您要麼在已經預定義的課程之後給您的課程命名,要麼將您的課程放入模塊中。或者像你說的那樣刪除一起測試,但這就像說你想刪除放入,因爲紅寶石放入是干擾你的放入。 –