2009-04-12 26 views
12

我是新來的鐵軌,並試圖找出如何獲得嵌套的佈局工作;我假設他們有點像.net母版頁面?紅寶石在軌道上的嵌套佈局

我已經按照this guide,我已經創建了我的佈局目錄中的application.erb.html其中包含此:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
    <meta http-equiv="content-type" content="text/html;charset=UTF-8" /> 
    <title><%= @page_title or 'Page Title' %></title> 
    <%= stylesheet_link_tag 'layout' %> 
    <style type="text/css"><%= yield :stylesheets %></style> 
</head> 
<body> 

<%= yield(:content) or yield %> 

</body> 
</html> 

,並修改了我的現有佈局之一,以這樣的:

<% content_for :stylesheets do %> 

<% end -%> 

<% content_for :content do %> 
    <p style="color: green"><%= flash[:notice] %></p> 
    <%= yield %> 
<% end -%> 

<% render :file => 'layouts/application' %> 

當我在瀏覽器中看到我的一個視圖時,絕對沒有任何東西被呈現;當我查看源代碼時,沒有html。

我敢肯定有一些基本的東西我錯過了,任何人都可以指出它?!

+0

可能重複的[多級嵌套佈局在Rails 3](http://stackoverflow.com/questions/6539239/multiple-level-nested-layout-in-rails-3) – 2016-02-12 11:49:44

回答

29

我已經制定了解決方案,雖然這不是什麼在this article

給我把它換成這一行

<% render :file => 'layouts/application' %> 

<%= render :file => 'layouts/application' %> 

我不知道,如果文章是錯誤的,或者我找到了解決它的錯誤方法!請告訴我!

乾杯

+0

給了你一票,因爲這救了我從同樣的困惑。 – gabe 2009-05-23 19:50:37

4

原始文章有錯誤,您的解決方案是正確的。原因如下:

包含在<%=%>中的ERB(視圖)中的ruby代碼的輸出被添加到生成併發送到瀏覽器的HTML中。包含在<%>中的ruby代碼的輸出不會被添加到HTML中。所以調用<%render:partial ...%>沒有效果,因爲該ruby代碼的結果(獲取部分)不會被添加到生成的HTML文件中。

<%>通常爲條件和循環保留,如上例所示。