【问题标题】:Nested layouts in ruby on railsruby on rails 中的嵌套布局
【发布时间】:2009-04-12 15:38:16
【问题描述】:

我是 Rails 新手,我正在努力研究如何让嵌套布局工作;我假设它们有点像 .net 母版页?

我关注了this guide,并在我的布局目录中创建了一个 application.erb.html,其中包含以下内容:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
  <title><%= @page_title or 'Page Title' %></title>
  <%= stylesheet_link_tag 'layout' %>
  <style type="text/css"><%= yield :stylesheets %></style>
</head>
<body>

<%= yield(:content) or yield %>

</body>
</html>

并将我现有的布局之一修改为:

<% content_for :stylesheets do %>

<% end -%>

<% content_for :content do %>
  <p style="color: green"><%= flash[:notice] %></p>
  <%= yield %>
<% end -%>

<% render :file => 'layouts/application' %>

当我在浏览器中转到我的视图之一时,绝对没有呈现任何内容;当我查看源代码时没有 html。

我确定我错过了一些基本的东西,有人可以指出吗?!

【问题讨论】:

标签: ruby-on-rails


【解决方案1】:

我已经制定了解决方案,虽然它不是 this article 中给出的内容

我已经替换了这一行

<% render :file => 'layouts/application' %>

<%= render :file => 'layouts/application' %>

我不确定文章是否有误,或者我找到了错误的修复方法!请告诉我!

干杯

【讨论】:

  • 投了你一票,因为这让我摆脱了同样的困惑。
  • 相同;谢谢。已经一年多了,指南中的错误仍然存​​在。 :|
【解决方案2】:

原文章有错误,你的解决方法是正确的。原因如下:

包含在 中的 ERB(视图)中的 ruby​​ 代码的输出被添加到生成的 HTML 中并发送到浏览器。包含在 中的 ruby​​ 代码的输出不会添加到 HTML 中。所以调用 没有任何效果,因为 ruby​​ 代码的结果(获取部分)没有添加到生成的 HTML 文件中。

通常为条件和循环保留,就像您在上面的示例中一样。

【讨论】:

    【解决方案3】:

    这里是a different approach 用于可能派上用场的嵌套布局。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 2010-11-10
      • 2018-12-28
      • 2011-06-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多