2009-11-24 99 views
0

好吧,這個有點荒謬,我幾乎害怕沒有人會相信我。但是這裏有:Ruby解釋器用某個詞崩潰

我已經編寫了一個Ruby Rails應用程序來處理大量域的內容。現在我知道這打破了Rails的基本規則,但是每個域的所有信息都存放在一個配置文件中。我知道這可能是錯誤的,但它現在是如何設置的,它不會太早(儘管它會)。無論如何,你想要查看的域的名稱作爲參數傳入(至少在開發中)。該參數用於打開相同名稱的配置文件。這意味着如果我想要查看域xxx的內容,我需要輸入(使用活動的Mongrel服務器)http://localhost:3000?name=xxx。 Rails將引用xxx.xml,並提取必要的信息。

到目前爲止,這對所有域都有效。很容易生成配置文件並相應地更改它們。除此之外,現在有一個域,當我嘗試查看它時,崩潰Ruby解釋器。經過測試,唯一導致問題的是實際的域名,即pumarunningshoes.com。當我將puma這個詞改爲luma時,它運行良好。當我改回來時,一切都再次崩潰。所以,我必須得出結論Rails或Mongrel不喜歡「puma」這個詞。爲什麼是這樣?它是保留字,還是我不知道的功能?

感謝您的幫助!

+1

哇,也許Rails或Mongrrel更喜歡Nikes或Reeboks? – andrewWinn 2009-11-24 19:13:37

+0

復活節反雞蛋 – int3 2009-11-24 19:15:10

+0

爲了澄清,您是否也將文件更改爲「lumarunningshoes.xml」,或者只是更改了名稱中的字符?我的意思是,你能把這個網站100%運行起來並運行「luma」嗎? – Chuck 2009-11-24 19:20:53

回答

0

其實你應該能夠GDB連接到正在運行的進程雜種並模擬碰撞(因爲你已經知道,當域設置爲特定的字符串「X」碰巧)很容易。

欲瞭解更多信息,請參閱Gdb wrapper for ruby

一旦你有其中的崩潰(或段錯誤),或者更新這個帖子回溯你在gdb得到或郵寄回溯紅寶石核心的地方。

1

好吧,我有點修好了。我不願意承認這一點,因爲它很尷尬。但是,本着致力於學習的SO精神,我將描述我的解決方案。

基本上,我一行一行地通過調用該域的控制器方法。我發現我的一個方法在其他領域都有效,但在某種方面卻失敗了。當我刪除方法調用和相關的視圖的東西,它突然工作。

我做了一個假設,如果它適用於所有其他域,那它也適用於這個。我沒有爲這個做任何不同的事情。所以現在我必須弄清楚爲什麼這個方法失敗了。但至少我得到了它的工作。

我很感謝您的幫助。謝謝,SO社區!