我是Rails的新手。我正在使用Aptana Studio 3编写一个小应用程序。
在Views文件夹中,我添加了一个新的.html.erb页面,并添加了一个jQuery导航菜单栏。这个页面还有一个横幅。我想将其保留为所有其他页面的基础页面(类似于.NET中的Master Page)。
我希望所有其他页面都自动在顶部显示横幅和菜单栏。
如何做到这一点?我正在使用Rails 3.2。
编辑
application.html.erb的代码:
<!DOCTYPE html>
<html>
<head>
<title></title>
<%= stylesheet_link_tag "application", :media => "all" %>
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
<script type="text/javascript" src="..\Libraries\jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('li.headlink').hover(
function() { $('ul', this).css('display', 'block'); },
function() { $('ul', this).css('display', 'none'); });
});
</script>
<style type="text/css" rel="stylesheet">
/* General */
#cssdropdown, #cssdropdown ul { list-style: none; }
#cssdropdown, #cssdropdown * { padding: 0; margin: 0; }
/* Head links */
#cssdropdown li.headlink { width: 220px; float: left; margin-left: -1px; border: 1px black solid; background-color: #e9e9e9; text-align: center; }
#cssdropdown li.headlink a { display: block; padding: 15px; }
/* Child lists and links */
#cssdropdown li.headlink ul { display: none; border-top: 1px black solid; text-align: left; }
#cssdropdown li.headlink:hover ul { display: block; }
#cssdropdown li.headlink ul li a { padding: 5px; height: 17px; }
#cssdropdown li.headlink ul li a:hover { background-color: LightBlue; color:Black }
/* Pretty styling */
body { font-family: verdana, arial, sans-serif; font-size: 0.8em;}
#cssdropdown a { color: white; } #cssdropdown ul li a:hover { text-decoration: none; }
#cssdropdown li.headlink { background-color: Blue;}
#cssdropdown li.headlink ul { background-position: bottom; padding-bottom: 10px; }
</style>
</head>
<body>
<%= yield %>
<div id="divMain">
<div id="divHeader">
<img src="..\Images\W.png">
</div>
<div id="divMenu">
<ul id="cssdropdown">
<li class="headlink">
<a href="#">Task</a>
<ul>
<li><a href="#">Add New</a></li>
</ul>
</li>
<li class="headlink">
<a href="#">Reports</a>
<ul>
<li><a href="#">Report</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div id="content"><%= content_for?(:content) ? yield(:content) : yield %></div>
</body>
</html>
内容代码.html.erb
<% content_for :stylesheets do %>
<div id="divLogin">
</div>
<% end %>
<% content_for :MainContent do %>
<div id="divMain">
</div>
<% end %>
<%= render :partial => "layouts\application.html.erb" %>
application.html.erb
文件中没有关联的yield(:stylesheets)
,则无法使用content_for :stylesheets
。对于content_for :MainContent
也是如此。Rails将整个页面(所有content.html.erb
)放入yield
(无参数)块中的application.html.erb
文件中,因此无需将其包装在MainContent块中。 - jokklanapplication.html.erb
。您可以在控制器中更改它,通过在顶部调用layout "another_layout"
,这将适用于控制器中的所有操作。或者您可以在一个操作中调用render "some_action", :layout => "another_layout"
,以仅更改该操作的布局。 - jokklan