Apitome 侧边栏在包含在布局中时消失

Apitome sidebar disappears when included in a layout

我在 rails 应用程序的 5.2 ruby 版本中使用 rspec_api_documentationapitome gem。

这会产生出色的文档,并且有一个边栏 (div#sidebar) 可以快速访问文档的正确部分。当我选择

config.layout = "layouts/application.html.erb"
apitome.rb 初始化程序中的

选项,文档已呈现,但边栏已消失。查看页面源代码,侧边栏的代码没有被渲染,也就是说,这不是 css 问题,html 没有被放入布局中。为了确保它在我的 application.html.erb 文件中没有异常,我将其简化为

<!DOCTYPE html>
<html>
  <head>
  </head>

  <body>
        <%= yield %>
  </body>
</html>

这个侧边栏非常有用,那么如何在布局中呈现它呢?

根据对 this issue 的回复,我解决了这个问题。

我在 app/views/layouts.apidocs.html.erb 创建了一个呈现 apitome/docs/navigation 的新布局。一个简单的例子如下

# app/views/layouts/apidocs.html.erb

<!DOCTYPE html>
<html>
  <head>
  </head>

  <body>
    <div class="container">
      <div class="row">
        <div class="col-md-4">
          <div id="sidebar" class="sidebar hidden-print" role="complementary">
            <%= render 'apitome/docs/navigation' %>
          </div>
        </div>
        <div class="col-md-8" role="main">
          <div class="docs-section">
            <%= yield %>
          </div>
        </div>
      </div>
    </div>
  </body>
</html>

然后我在 apitome 初始化程序。

# config/initializers/apitome
Apitome.setup do |config|
   ...
   config.layout = "layouts/apidocs.html.erb"
end

经过一些 css 修补,一切看起来都不错。