【问题标题】:rails layout not showing导轨布局未显示
【发布时间】:2009-07-24 21:41:50
【问题描述】:

我将我的一个应用从 rails 升级到了 2.3.2,从 2.0.2 升级到了 2.3.2。启动查找。但是,一旦我开始运行任何页面,页面就会显示,但似乎没有呈现任何布局代码。布局中的标准标记(例如头部、主体)都不会被渲染。似乎以某种方式关闭了布局。我检查了错误日志,没有发现任何关于布局的投诉。有人见过吗?

【问题讨论】:

  • 同样的事情发生在我身上
  • 在给出答案之前,我们确实需要更多信息。

标签: ruby-on-rails ruby


【解决方案1】:

可能是您在控制器中覆盖了 initialize(),因此布局被忽略。

见: will initialize break the layout settings in rails?

【讨论】:

    【解决方案2】:

    您是否尝试过明确设置布局? (仅用于调试)

    render :layout => "mylayout"
    

    这可以帮助您查找错别字。一位同事曾经在他的布局名称后面有一个空格,“application.html.erb”我们是这样找到的。

    【讨论】:

    • 是的,我已经尝试过了,它有效。但是如果你在渲染后使用 :layu=> 'mylayout" ,它就不起作用了
    【解决方案3】:

    看看你是否有文件app/views/layouts/application.html.erb - 它应该是你的默认布局。我不确定,但我认为 Rails 在某些版本中更改了默认布局文件名,并且在过去的某个地方更改了文件扩展名。

    【讨论】:

    • 是的。并确保您的文件扩展名顺序正确。这曾经是我的问题 :) 在特定版本的 Rails 之后不再支持 application.erb.html :)
    【解决方案4】:

    根据您提供的信息很难确定,但您可以检查以下几点:

    1. 您的布局是否具有正确的文件扩展名(.html.erb 而不是 .rhtml)

    2. 布局名称是否与控制器名称匹配,否则为控制器内部声明的布局名称

    3. 我假设布局位于您应用程序的正确目录中 (app/views/layouts)

    祝你好运

    【讨论】:

    • 1.是的 2. 是的。它匹配。 3.是的
    【解决方案5】:

    我相信在 Rails 2.0 和 2.3 之间的某个地方,ApplicationController 的位置从 app/controllers/application.rb 更改为 app/controllers/application_controller.rb。是否有可能因为这个(或其他原因)你的ApplicationController 没有正确加载?如果是这样,并且您在该类中定义了 layout,它可能不会采用默认布局。

    【讨论】:

    • 当我遇到这个时,应用程序将无法启动,因为 application.rb 定义了 ApplicationController 而不是 Application。
    【解决方案6】:

    它会影响所有控制器吗?

    如果不看 app/views/.html.erb 这可能是非常空白的

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-21
      • 2019-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多