rails render
2014-01-13 15:58
211 查看
Render結果
在根據request資訊做好資料處理之後,我們接下來就要回傳結果給用戶。事實上,就算你什麼都不處理,Action方法裡面空空如也,甚至不定義Action,Rails預設也還是會執行render方法。這個render方法會回傳預設的Template,依照Rails慣例就是app/views/{controller_name}/{action_name}。如果找不到樣板檔案的話,會出現Template is missing的錯誤。當然,有時候我們會需要自定render,也許是指定不同的Template,也許是不需要Template。這時候有以下參數可以使用:
直接回傳結果
render :text => "Hello"直接回傳字串內容,不使用任何樣板。
render :xml => @event.to_xml回傳XML格式
render :json => @event.to_json回傳JSON格式(再加上
:callback就會是JSONP)
render :nothing => true空空如也
指定Template
:template指定Template
:action指定使用該Action的Template(注意到只是使用它的Template,而不會執行該Action內的程式)
:file指定Template的檔名全名
其他參數
:status設定HTTP status,預設是200,也就是正常。其他常用代碼包括401權限不足、404找不到頁面、500伺服器錯誤等。
:layout可以指定這個Action的Layout,設成false即關掉Layout
補充一提,在特定情況你想把
render的結果存成一個字串,例如拿到局部樣板Partials成為一個字串,這時候可以改使用
render_to_string :partial => "foobar"
Redirect
如果Action不要render任何結果,而是要使用者轉向到別頁,可以使用redirect_toredirect_to :action => "show", :id => @event
redirect_to :back回到上一頁。
注意,一個Action中只能有一個
render或一個
redirect_to。不然你會得到一個
DoubleRenderError例外錯誤。
相关文章推荐
- Posix标准中的timer和AIO
- MFMailComposeViewController发送邮件的实例
- Wildfly domain多机多节点集群方式搭建
- svn: Authorization failed错误
- Climbing Stairs
- U盘安装Ubuntu 12.04 Server版提示“Faild to copy file from CD-ROM”的解决办法
- uva 442 Matrix Chain Multiplication
- 安卓adb remount失败时,报failed: Operation not permitted
- 360Email营销:如何提升邮件营销测试效果
- grails学习笔记-6、conf配置文件-你让我该怎样部署
- kafka Failed to send messages after 3 tries 问题解决
- Domain Driven Design
- SFHFKeychainUtils 存储用户信息
- http://blog.csdn.net/xjtuse_mal/article/details/7669371
- winform 错误 1 程序“aa.exe”不包含适合于入口点的静态“Main”方法 path\CSC namespace
- server 2012远程磁盘管理报错 “RPC server is unavailable”
- 直接插入排序(Straight Insertion Sort)
- codeforces--2014/1/13--B. Sereja and Stairs
- ACM HDOJ 1151 (Air Raid)
- 自己动手做——邮件客户端FrankMail