Rails部分渲染导致空白页?

时间:2009-04-07 16:13:32

标签: ruby-on-rails

我现在遇到了一个令我困惑的错误。我有一个 布局包含一些HTML和部分(用于导航) - 那里 除了收益之外别无其他。

  1. 如果导航被包含为部分导航,则无法返回到 浏览器(空白页)但其他一切看似正常
  2. 如果我删除部分页面正常
  3. 如果我将导航代码直接放在模板中,那就可以了。
  4. 如果我用一个简单的字符串替换部分中的导航代码,我得到 再次出现空白页。
  5. 有没有人对问题是什么或知道如何有任何想法 我可能会调试它吗?

3 个答案:

答案 0 :(得分:1)

发现问题,部分是在layouts文件夹中,而不是 相关的控制器视图文件夹。

然而,Rails抛出了一个ActionView :: MissingTemplate Exception 这只是通过调试器可见,这可能是一个错误。

答案 1 :(得分:0)

首先,检查日志文件以查看您是否在某处收到错误消息。如果这无助于遵循以下步骤:

  • 制作模板副本&部分,链接为原始
  • 测试他们是否出现问题
  • 开始从中移除内容,直到您遇到问题最简单的情况为止(部分测试中的字符串是朝这个方向迈出的一步)
  • 如果您在此过程中没有弄清楚,请返回并编辑您的问题以包含简化案例的代码

答案 2 :(得分:0)

我在很多场合都遇到过这个错误。问题一直是通过更改违规模板中的某个内容或其中一个部分来解决的(在我最新的案例中,我在</div><div>之间的源中添加了一个空行,这是模板部分调用的;更改模板本身没有任何效果)。真正奇怪的是,当我实际更改模板时,问题很少发生,但通常在我更改相关内容时(例如,编辑页面中显示的图像或与页面相关的CSS)。虽然问题通常与部分有关,但整个页面都是空白的,而不仅仅是部分提供的部分。

BTW,重新启动Web服务器(在本例中为Unicorn)无法解决问题。运行Ruby 1.9.3,Rails 3.1.3。使用SASS和Unicorn。

更新:刚刚确定Rails正在返回304-未修改,基于&#34; If-none-match&#34;我的浏览器发送的标题(反过来是基于上一页的ETAG)。但是,在此期间,浏览器清除了窗口。因此,据推测,Rails发送的内容导致浏览器清除窗口。