Domanda

ho provato a scrivere il rendering in un'azione, ma il comportamento layout è diverso, perché?

def show
   # assuming we have a partial in app/views/shared/_panel_show.html.erb
   #render "shared/_panel_show" # have layout
   #render "/shared/_panel_show" # without layout
   #render "shared/panel_show" # Template is missing
   #render :partial => "shared/panel_show" # without layout
   render :partial => "/shared/_panel_show",:layout => "application" # have layout
end

Voglio rendere un parziale e seguire il layout di controllo.

È stato utile?

Soluzione

Il punto centrale di un parziale è che rende solo una parte di una vista e rende senza la layout.

Vorrei suggerire la creazione di una nuova vista (e di azione nel nostro controller), dire condiviso / full_panel_show, che rende solo il parziale.

<%= render :partial => 'shared/panel_show' %>

Ora nel controller rendono la nuova vista:

def show
  render :action => 'shared/full_panel_show'
end

A seconda di ciò che si sta doping con la vista spettacolo, si può solo rendere il parziale è vista invece.

Altri suggerimenti

Ho una soluzione per rendere un parziale layout in regolatore

render 'shared/_panel_show', layout: "layouts/application"

è sufficiente rimuovere il metodo "parziale" quindi aggiungere sottolineatura.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top