如何从application.html.erb传输代码

时间:2013-11-07 20:02:18

标签: ruby-on-rails ruby ruby-on-rails-3

我知道默认情况下,Rails中的视图使用application.html.erb中提供的模板 这是我的默认模板:

<!DOCTYPE html>
<html>
<head>
    ... any code ...
</head>
<body>
 <header> ... any code ... </header>

  <%= yield %>

</body>
</html>

我需要转移代码标头&gt;在部分模板中。

这是我的尝试:

  1. 我在剖面视图/ layouts / header_menu.html.erb
  2. 中创建
  3. 我在helpers / application_helper.rb

    中添加了methode

    def layout_header

    render 'layouts/header_menu'
    

  4. 并在application.html.erb

    中调用它
    <!DOCTYPE html>
    <html>
    <head>
        ... any code ...
    </head>
    <body>
    
      <%= layout_header %>
    
      <%= yield %>
    
    </body>
    </html>
    

    这是我的错误: *缺少部分布局/ header_menu {{locale =&gt; [:en],:formats =&gt; [:html],:handlers =&gt; [:erb,:builder,:coffee,:haml]}。搜索范围:   *“E:/ BDR_SEVERNEFT / app / views”*

    我使用了Rails 3.2和Ruby 1.9.3

1 个答案:

答案 0 :(得分:0)

查看指南http://guides.rubyonrails.org/layouts_and_rendering.html#using-partials

您可以使用<%= render layout/header_menu %>直接在.erb文件中呈现部分内容,部分文件需要以下划线开头,即“_header_menu.html.erb”。

如果您想使用方法调用方法,请再次调用render partial: "layout/header_menu",将文件名设为“_header_menu.html.erb”。