您的位置:首页 > 大数据 > 人工智能

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_to

redirect_to :action => "show", :id => @event


redirect_to :back
回到上一頁。


注意,一個Action中只能有一個
render
或一個
redirect_to
。不然你會得到一個
DoubleRenderError
例外錯誤。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: