# Visualizzare un frammento di pagina

**URL:** <https://www.ruby-forum.com/t/visualizzare-un-frammento-di-pagina/202914>\
**Category:** IT\
**Created:** [February 8, 2011, 10:05pm UTC](https://www.ruby-forum.com/t/visualizzare-un-frammento-di-pagina/202914 "2011-02-08T22:05:38Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![dubstep](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/cdc98d/32.png) [@dubstep](https://www.ruby-forum.com/u/dubstep)\
**Post date:** [February 8, 2011, 10:05pm UTC](https://www.ruby-forum.com/t/visualizzare-un-frammento-di-pagina/202914/1 "2011-02-08T22:05:38Z")

</div>

L’action create del controller deliveries e’:

def create  
@customer=Customer.find(params[:customer\_id])  
@delivery = @customer.deliveries.build(params[:delivery])  
@document = @customer.build\_document(params[:document])  
if @delivery.valid? and @document.valid?  
Delivery.transaction do  
@delivery.save!  
@document.save!  
end  
flash[:success] = ‘Consegna effettuata’  
respond\_with(@customer)  
else  
@products = Product.all  
render ‘customers/show’, :layout =\> ‘delivery’  
end  
end

l’action show del controller customers e’:

…  
\<% content\_for :delivery\_form do %\>  
\<%= render ‘deliveries/form’ %\>  
\<% end %\>  
\<% content\_for :delivered do %\>  
\<%= render ‘delivered/form’ %\>  
\<% end %\>

nel layout vorrei visualizzare uno solo dei due content in relazione  
al fatto che @delivery e @document siano stati salvati nel database o  
meno.  
Ho un form, al submit vengono creati gli oggetti @delivery e  
@document, se non sono validi mi viene ripresentata la show e il  
layout dovrebbe presentarmi \<%= yield :delivery\_form %\> mentre se gli  
oggetti sono validi e qundi salvati nel database il layout dovrebbe  
presentarmi \<%= yield :delivered %\>.  
In base a cosa posso operare la selezione?  
Ho provato \<% if @delivery.valid? and @document.valid? %\> ma non va  
perche’ una volta salvati valid diventa false quindi mi viene sempre  
presentato \<%= yield :delivery\_form %\>.

---

<div class="post-metadata">

**Author:** ![msan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/3ab097/32.png) [@msan](https://www.ruby-forum.com/u/msan)\
**Post date:** [February 10, 2011, 10:01am UTC](https://www.ruby-forum.com/t/visualizzare-un-frammento-di-pagina/202914/2 "2011-02-10T10:01:27Z")

</div>

2011/2/8 Mauro [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> end  
> …  
> Ho un form, al submit vengono creati gli oggetti @delivery e  
> @document, se non sono validi mi viene ripresentata la show e il  
> layout dovrebbe presentarmi \<%= yield :delivery\_form %\> mentre se gli  
> oggetti sono validi e qundi salvati nel database il layout dovrebbe  
> presentarmi \<%= yield :delivered %\>.  
> In base a cosa posso operare la selezione?  
> Ho provato \<% if @delivery.valid? and @document.valid? %\> ma non va  
> perche’ una volta salvati valid diventa false quindi mi viene sempre  
> presentato \<%= yield :delivery\_form %\>.

Nessun suggerimento?  
Forse e’ sbagliata l’impostazione?
