Ruby on Rails 2.1 - 渲染
通常使用与控制器方法同名的视图模板来渲染结果。
操作
# 默认值。无需指定 # 在名为"some_action"的控制器方法中 render :action => 'some_action' render :action => 'another_action', :layout => false render :action => 'some_action', :layout => 'another_layout'
部分
部分存储在名为"_subformname"的文件中(_error、_subform、_listitem)。
render :partial => 'subform' render :partial => 'error', :status => 500 render :partial => 'subform', :locals => { :variable => @other_variable } render :partial => 'listitem', :collection => @list render :partial => 'listitem', :collection => @list, :spacer_template => 'list_divider'
模板
它更像是渲染一个动作,但它根据模板根 (app/views) 查找模板。
# renders app/views/weblog/show render :template => 'weblog/show'
文件
render :file => '/path/to/some/file.rhtml' render :file => '/path/to/some/filenotfound.rhtml', status => 404, :layout => true
Text
render :text => "Hello World" render :text => "This is an error", :status => 500 render :text => "Let's use a layout", :layout => true render :text => 'Specific layout', :layout => 'special'
内联模板
使用 ERb 呈现"微型"模板。
render :inline => "<%= 'hello , ' * 3 + 'again' %>" render :inline => "<%= 'hello ' + name %>", :locals => { :name => "david" }
Nothing
render :nothing render :nothing, :status => 403 # forbidden
RJS
def refresh render :update do |page| page.replace_html 'user_list', :partial => 'user', :collection => @users page.visual_effect :highlight, 'user_list' end end
更改内容类型:
render :action => "atom.rxml", :content_type => "application/atom+xml"