respond_to 會根據使用者傳來的格式進行不同回應
格式為
respond_to do |format|
format.html {動作...}
format.xml {動作...}
format.附檔名3 {動作}
end
或有人有疑問format參數是怎麼來的,在系統預設他便是在路徑中傳遞
預設為.html
respond_to常用的搭配指令為
render 代表回傳訊息
redirect_to 代表導向頁面
因為render是系統預設回傳,在scaffold出來的程式,甚至可以看到
respond_to do |format|
format.html
end
的寫法,不是沒傳參數,而是此時系統會到預設的版模去抓(ror充滿這樣的預設)
如改成
format.html {render :text => "test"}
就會在顯示時出現
"test"
一般系統會輸出的格式html
要測試這樣的程式,不妨在視窗打入實際位址,比方
/msg/new.html
就會顯示出一般的畫面
msg/new.xml
就會顯示出系統對應的xml
比方輸入/msg/new.xml
會出現
<msg>
<name nil="true"/>
<created-at type="datetime" nil="true"/>
<updated-at type="datetime" nil="true"/>
<content nil="true"/>
</msg>
一些render能搭配的參數
如
:text #傳文字
:xml #傳xml
:json #傳json
:nothing #不傳
:template #樣版的檔名
:action #針對某個action預設的回傳頁面(不執行動作)
:status 傳200(正常) 404 這樣的訊息
有空不妨玩玩看
有空不妨玩玩看
沒有留言:
張貼留言