如何将子模板扩展到rails中的父模板

时间:2012-07-20 05:32:29

标签: ruby-on-rails ruby

我是铁杆新手。我很难理解模板继承。之前我曾在django工作,并在那里看过模板继承。在那里,我看到孩子使用“extends”命令被告知父母。任何人都可以解释它是如何工作的。我已经完成了红宝石的指导,但目前尚不清楚。

由于

1 个答案:

答案 0 :(得分:1)

在Rails中这很简单。

您只需告诉当前渲染的模板渲染另一个模板。

例如layouts/application.html.erb包含以下内容:

<% content_for :navigation do %>
<nav>...</nav>
<% end %>     

<% content_for :content do %>                                                                                                                                                                       
<%= yield %>                                                                                                                                                                                        
<% end %>                                                                                                                                                                                           

<%= render :template => 'layouts/main_application' %>   

重要的部分是render :template部分,然后委托此模板也呈现layouts/main_application.html.erb,在我的案例中看起来像这样:

<header>
...
</header>
<body>
<%= yield :nav %>
<%= content_for?(:content) ? yield(:content) : yield %> 
</body>

我在这里做的是拥有一个不包含导航的主模板(用于登录等),而application.html.erb将该导航添加到:nav内容占位符。