1

私は ruby​​ のチュートリアルを行っており、現在 5.9 をリストしています。app/views/layoutsパーシャルがディレクトリに表示されない

これがコードです。OSX 10.8 で rails 1.8.7 を使用しています。私はrvmbrew 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.9 ではなく 1.8.7 を使用するように調整する必要があります。チュートリアルはそうするように言います

<%= render'layouts/header' %>

それはうまくいかなかったので、私は試しました

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

パーシャルはまだ表示されません。

4

2 に答える 2

2

パーシャルを実行する場合、パーシャルは「呼び出し」ファイルと同じフォルダーerb、または指定したフォルダーにある必要があります。_さらに、パーシャルの名前は、ディレクトリ内でアンダースコア ( ) で始まる必要があります。

したがって、app/views/layouts/application.html.erbpartialshimおよびheaderを呼び出す場合は、次のように呼び出すことができます。

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

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

app/views/layouts/_shim.html.erbそして、それらをそれぞれとに入れる必要がありますapp/layouts/_header.html.erb

パーシャルが "calling" とは別のフォルダーerb(たとえば ) に存在する場合は、次のようapp/views/foo/_header.html.erbにレンダリングしapplicationsます。

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