【问题标题】:yield :content doesn't show content_for :contentyield :content 不显示 content_for :content
【发布时间】:2015-11-07 04:35:56
【问题描述】:

我想我也有同样的问题。 Using multiple yields to insert content

我尝试了解决方案。在我看来,我试图在我的 application.html.erb 中添加 <%= yield :content %> 并在里面添加 content_for :contentyield。但它不适用于我的应用程序。您能否就我的问题进行更多解释或提供示例场景?

里面的链接不能重新加载,所以我不会在我要显示的每个模板上使用渲染部分。

我最近才开始学习 Rails,所以对我来说有点困惑。谢谢。

我试过这个;这只是一个例子,我稍后会修复侧边栏的连接。

在我的 applicaion.html.erb 中

<!DOCTYPE html>
<html>
<head>
  <title>Clinks</title>
  <%= stylesheet_link_tag    "application", media: "all" %>
  <%= javascript_include_tag "application" %>
  <%= csrf_meta_tags %>
</head>

<body>
    <section id="container" >
        <%= render 'layouts/header' %>
        <%= render 'layouts/sidebar' %>
        <section id="main-content">
            <section class="wrapper">
                <div class="row">
                    <!-- %= yield % -->
                    <%=yield(:content) %>
                </div><!--/row -->
            </section><!--/wrapper -->
        </section><!--/main-content -->
    </section><!--/container -->
</body>
</html>

layouts 文件夹内的 menu_tables.html.erb 中。

<% content_for(:content) do %>
    <%= render 'menu_tables/sidemenu' %>
    <%= yield %>
<% end %>
<%= render template: "layouts/application" %>

在我的 routes.rb 中

Rails.application.routes.draw do
  root :to => 'pages#home'
  resources :menu_tables, except: [:show]
end

然后在menu_tables控制器下的_sidemenu.html.erb中是链接的代码,所以侧边栏的每个链接都有不同的sidemenu。

【问题讨论】:

    标签: ruby ruby-on-rails-4 yield content-for


    【解决方案1】:

    您可能需要告诉控制器使用layout 'menu'。在链接中,您提供了控制器的名称和匹配的布局,因此它“神奇地”工作。 见guides

    2.2.14 查找布局

    为了找到当前布局,Rails 首先在 app/views/layouts 与控制器具有相同的基本名称。为了 例如,来自 PhotosController 类的渲染动作将使用 app/views/layouts/photos.html.erb(或 app/views/layouts/photos.builder)。如果没有这样的 特定于控制器的布局,Rails 将使用 app/views/layouts/application.html.erb 或 应用程序/视图/布局/application.builder。如果没有 .erb 布局, 如果存在,Rails 将使用 .builder 布局。 Rails 还提供 几种更精确地将特定布局分配给个人的方法 控制器和操作。

    (注意:您可以查看日志中使用的布局,查找类似于Rendered menu_items/index.html.erb within layouts/application的行)

    【讨论】:

    • 非常感谢你,这很有意义。大帮助!但仍然不是我需要的答案。我正在考虑在每个视图上输入render partial
    • 恐怕我没有得到你真正想做的东西。你能用其他语言来描述吗?对于侧边栏的不同页面,白色链接框中是否呈现不同的部分?
    • 是的,你是对的 ^_^ 侧边栏中的每个链接都有不同的链接(menu_links,带有白色背景的内部链接)如果我单击 menu_links 中的链接,我不想被重装。那可能吗?对不起我的英语不好。我也不擅长解释^_^,但你给出的答案也很有帮助..谢谢。
    猜你喜欢
    • 2019-05-07
    • 2015-06-05
    • 1970-01-01
    • 2014-07-03
    • 2020-07-15
    • 1970-01-01
    • 2015-08-14
    • 1970-01-01
    • 2013-02-26
    相关资源
    最近更新 更多