Ruby on Rails - 渲染

通常使用与控制器方法同名的视图模板来渲染结果。

操作

# 默认值。不需要指定
# 在名为"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.html.erb'
render :file => '/path/to/some/filenotfound.html.erb', 
   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"

rails-references-guide.html