1

我正在做 ruby​​ 教程,我目前正在列出 5.9。部分未显示在我的app/views/layouts目录中

这是代码,我在 OSX 10.8 上使用 rails 1.8.7。我正在rvm通过 brew install 使用和安装:

    <!DOCTYPE html>
<html>
  <head>
    <title><%= full_title(yield(:title)) %></title>
    <%= stylesheet_link_tag "application", media: "all",
                                           "data-turbolinks-track" => true %>
    <%= javascript_include_tag "application", "data-turbolinks-track" => true %>
    <%= csrf_meta_tags %>
    <%= render :partial =>'layouts/shim' %>
  </head>
  <body>
    <%= render :partial => 'layouts/header' %>
    <div class="container">
      <%= yield %>
    </div>
  </body>
</html>

到目前为止,我完全按照教程进行操作,并且每隔一段时间我需要调整一下以使用 1.8.7 而不是 1.9。教程说要做

<%= render'layouts/header' %>

那没有用,所以我尝试了

<%= render :partial => 'layouts/header' %>

并且部分仍然没有出现。

4

2 回答 2

4

我有同样的问题,直到我意识到它应该是<%= render

(我正在使用<% render

于 2017-10-31T11:38:52.223 回答
2

执行部分时,部分必须与“调用”erb文件位于同一文件夹中,或者位于您指定的文件夹中。此外,部分的名称必须以_目录中的下划线( ) 开头。

因此,如果app/views/layouts/application.html.erb调用 partialshimheader,您可以这样调用它们:

<%= render :partial => "shim" %>

<%= render :partial => "header" %>

您必须分别将它们放在app/views/layouts/_shim.html.erbapp/layouts/_header.html.erb中。

如果部分存在于与您的“调用”不同的文件夹erb中,例如,app/views/foo/_header.html.erb那么您applications将按如下方式呈现它:

<%= render :partial => "foo/header" %>
于 2013-07-22T17:19:58.460 回答