部分未显示在视图中

时间:2013-07-22 15:19:49

标签: ruby-on-rails ruby render partials

我正在做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' %>

并且部分内容仍然没有出现。

2 个答案:

答案 0 :(得分:1)

当做部分时,部分必须与你的&#34;调用&#34;在同一文件夹中。 erb文件,或您指定的文件夹中。此外,partial的名称必须以目录中的下划线(_)开头。

因此,如果app/views/layouts/application.html.erb调用了部分shimheader,您可以像这样调用它们:

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

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

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

如果某个部分存在于与您的&#34;调用&#34;不同的文件夹中erb,例如app/views/foo/_header.html.erb,然后您从applications呈现它,如下所示:

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

答案 1 :(得分:1)

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

(我正在使用<% render