0

好吧,这个有点可笑,我怕没有人会相信我。但它是这样的:

我编写了一个 Ruby Rails 应用程序来处理大量域的内容。现在我知道这违反了 Rails 的基本规则,但是每个域的所有信息都保存在一个配置文件中。我知道这可能是错误的,但它现在就是这样设置的,而且不会太快(尽管会)。无论如何,您要查看的域的名称作为参数传入(至少在开发中)。该参数用于打开同名的配置文件。这意味着如果我想查看域 xxx 的内容,我需要输入(激活 Mongrel 服务器)http://localhost:3000?name=xxx。Rails 将引用 xxx.xml,并提取必要的信息。

到目前为止,这对所有域都有效。生成配置文件并相应地更改它们很容易。除了,现在有一个域,当我尝试查看它时,Ruby 解释器会崩溃。经过测试,唯一引起问题的是实际域名,即 pumarunningshoes.com。当我把 puma 改成 luma 时,效果很好。当我把它改回来时,一切又崩溃了。因此,我必须得出结论,Rails 或 Mongrel 讨厌“puma”这个词。为什么是这样?它是保留字,还是我不知道的功能?

谢谢你的帮助!

4

2 回答 2

1

好的,我修好了。我不想承认这一点,因为这很尴尬。但是,本着致力于学习的 SO 精神,我将描述我的解决方案。

基本上,我逐行浏览了为此域调用的控制器方法。我发现我的一种方法对其他所有领域都有效,但在这个方法上却以某种方式失败了。当我删除方法调用和相关的视图内容时,它突然起作用了。

我做了一个假设,如果它适用于所有其他领域,那么它也适用于这个领域。我没有为此做任何不同的事情。所以现在我必须弄清楚为什么这个方法在这个上失败了。但至少我得到了它的工作。

我感谢您的所有帮助。谢谢你,社区!

于 2009-11-24T22:05:38.487 回答
0

实际上,您应该能够将 GDB 附加到正在运行的 mongrel 进程并模拟崩溃(因为您已经知道它发生在 domain 设置为特定字符串 'x' 时)很容易。

有关更多信息,请参阅ruby​​ 的 Gdb 包装器

一旦你找到了崩溃(或段错误)的地方,要么用你在 gdb 中获得的回溯更新这个线程,要么将回溯发送到 ruby​​-core。

于 2009-11-24T20:30:24.297 回答