Ruby on Rails - Rendu
Habituellement, le modèle de vue portant le même nom que la méthode du contrôleur est utilisé pour rendre les résultats.
action
# The default. Does not need to be specified
# in a controller method called "some_action"
render :action => 'some_action'
render :action => 'another_action', :layout => false
render :action => 'some_action', :layout => 'another_layout'
Partiel
Les partiels sont stockés dans des fichiers appelés "_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'
Modèle
Comme le rendu d'une action, mais trouve le modèle en fonction de la racine du modèle (application / vues).
# renders app/views/weblog/show
render :template => 'weblog/show'
Fichier
render :file => '/path/to/some/file.html.erb'
render :file => '/path/to/some/filenotfound.html.erb',
status => 404, :layout => true
Texte
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'
Modèle en ligne
Utilise ERb pour rendre le modèle "miniature"
render :inline => "<%= 'hello , ' * 3 + 'again' %>"
render :inline => "<%= 'hello ' + name %>", :locals => { :name => "david" }
Rien
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
Changer le type de contenu -
render :action => "atom.rxml", :content_type => "application/atom+xml"
rails-references-guide.htm