一:給Views下的所有的rhtml頁(yè)面統(tǒng)一的裝飾
定義layouts下的application.rhtml 即可
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<!-- 連接CSS樣式文件 -->
<link rel="stylesheet" href="/stylesheets/message.css" type="text/css" media="all"/>
<!-- 包含系統(tǒng)中默認(rèn)的JavaScript庫(kù) -->
<%= javascript_include_tag :defaults %>
<title>===歡迎光臨留言系統(tǒng)===</title>
</head>
<body>
<br/>
<br/>
<br/>
<div id="user-page">
<div id="header-section">
ROR簡(jiǎn)單留言系統(tǒng)<%= @username %>
</div>
<div id="content-section">
<!-- 調(diào)用yield來返回被裝飾頁(yè)面中的內(nèi)容 -->
<%= yield %>
</div>
<div id="footer-section">
CopyRight @ 2009 RiskFIT,INC Feng
</div>
</div>
</body>
</html>
紅色部分就是調(diào)用被裝飾的頁(yè)面了.其它為公共部分
二:給views下的一個(gè)文件夾下的rhtml裝飾
例如controller是 user_controller.rb 則按照rails的約定,對(duì)應(yīng)的layout是layouts下的message.rhtml 對(duì)應(yīng)的view在views目錄下的message文件夾下rhtml
1,如果沒有定義layouts下的application.rhtml 則就按照message.rhtml裝飾
2,如果application.rhtml 和 message.rhtml同時(shí)定義 則就同時(shí)都執(zhí)行裝飾 (似乎沒有人這么傻)
三:給controller對(duì)應(yīng)下的action指定layout
在controller中加入
Layout “message.rhtml” 即可
例如:
class MessageController < ApplicationController
layout("message.rhtml",:only=>'new')
End
:only 表示只對(duì)new action起作用,
還有 :except 表示對(duì)哪些action不起作用
四:給單個(gè)action指定特定的 layout
因?yàn)橐粋€(gè)controller內(nèi)不能導(dǎo)入多個(gè)layout 所以這種做法很重要
在controller中定義action 只需這樣寫即可
def new
@message = Message.new
render :action =>'new',:layout=>"message.rhtml"
end
紅色部分即是跳轉(zhuǎn)到action用的layout了.
posted on 2009-03-20 18:13
fl1429 閱讀(1068)
評(píng)論(0) 編輯 收藏 所屬分類:
Rails