# Observe\_form

**URL:** <https://www.ruby-forum.com/t/observe-form/138155>\
**Category:** IT\
**Created:** [May 20, 2008, 5:24pm UTC](https://www.ruby-forum.com/t/observe-form/138155 "2008-05-20T17:24:49Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![pange\_99](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/3d9bf3/32.png) [@pange\_99](https://www.ruby-forum.com/u/pange_99)\
**Post date:** [May 20, 2008, 5:24pm UTC](https://www.ruby-forum.com/t/observe-form/138155/1 "2008-05-20T17:24:49Z")

</div>

Sto cercando di visualizzare un Alert a fronte di un cambiamento di  
valore in un campo.  
L’applicazione Ã¨ stata scritta utilizzando Active Scaffold, cosÃ¬ ho  
copiato in /app/view \_form\_attribute.rhtml che viene richiamata tante  
volte quanto sono i campi visualizzati.

Il codice modificato Ã©:

1- \<% scope ||= nil %\>  
2- \<%= javascript\_include\_tag :defaults %\>

3-

  
4-   
5- \<label for="\<%= “record\_#{column.name}” %\>"\>\<%= column.label  
%\>  
6-   
7-   
8- \<%= observe\_field :stato, :function =\> “alert(‘Element on  
focus’)”, :on =\> :change %\>  
9- \<%= active\_scaffold\_input\_for column, scope %\>  
10- \<% if column.description -%\>  
11- \<%= column.description %\>  
12- \<% end -%\>  
13-   
14- 

… in cui ho aggiunto la riga 2 e la 8.

Inutile dire che non vedo nulla.

Qualche idea per risolvere il problema?

Grazie.

Paolo

---

<div class="post-metadata">

**Author:** ![pange\_99](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/3d9bf3/32.png) [@pange\_99](https://www.ruby-forum.com/u/pange_99)\
**Post date:** [May 26, 2008, 10:36pm UTC](https://www.ruby-forum.com/t/observe-form/138155/2 "2008-05-26T22:36:12Z")

</div>

> 8- \<%= observe\_field :stato, :function =\> “alert(‘Element on  
> focus’)”, :on =\> :change %\>

Seguendo la guida di PrototypeHelper  
([http://api.rubyonrails.org/classes/ActionView/Helpers/PrototypeHelper.html#M000966](http://api.rubyonrails.org/classes/ActionView/Helpers/PrototypeHelper.html#M000966))  
pare che il problema stia nel parametro :on : dovrebbe essere ‘changed’  
invece di :change

Prova, magari il problema e` facilmente risolto

---

<div class="post-metadata">

**Author:** ![pange\_99](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/3d9bf3/32.png) [@pange\_99](https://www.ruby-forum.com/u/pange_99)\
**Post date:** [May 28, 2008, 4:12pm UTC](https://www.ruby-forum.com/t/observe-form/138155/3 "2008-05-28T16:12:55Z")

</div>

Grazie per la dritta Danele, ma credo di essere in difficoltÃ con la  
filosofia di AS e la strategia per le eventuali

Non riesco capire dove inserire l’observe\_field.

Mi spiego:  
AS genera una tabella con tante righe quanti sono i records nel DB.  
A fianco di ogni riga, inserisce il link a ‘Visualizza’, ‘Modifica’,  
‘Elimina’, cosÃ¬ come nella parte superiore, inserisce il link  
‘Crea’.  
Quando si clicca, ad es., su ‘Modifica’, la riga viene espansa e vengono  
visualizzati i campi specificati nel controller (active\_scaffold  
:destinazioni do | config | … end).

In realtÃ dovrei vedere un solo campo sprotetto e modificabile (e fin  
qui tutto Ã¨ possibile), ma poi, in base al valore inserito, dovrei  
visualizzare e/o sproteggerne altri, in modo da poter essere a loro  
volta modificati.

Questa tecnica Ã¨ banale con altri strumenti utilizzati in precedenza, ma  
con AS e la sua filosofia, proprio non riesco a capire come fare.

SarÃ probabilmente banale, ma mi sono fermato su questo problema e non  
riesco a venirne fuori.

Nessuno ha qualche idea da suggerire?

Paolo A.

---

<div class="post-metadata">

**Author:** ![pange\_99](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/3d9bf3/32.png) [@pange\_99](https://www.ruby-forum.com/u/pange_99)\
**Post date:** [May 29, 2008, 1:08am UTC](https://www.ruby-forum.com/t/observe-form/138155/4 "2008-05-29T01:08:36Z")

</div>

Non ho provato, ma se non ho capito male quel che ti serve forse devi  
prendere il file  
vendor/plugins/active\_scaffold/frontends/default/views/update.rjs e  
copiarlo in app/views/il\_tuo\_controller

Nella versione copiata poi vai ad inserire l’observe\_field

Il file da copiare potrebbe anche essere  
vendor/plugins/active\_scaffold/frontends/default/views/\_update\_form.rhtml  
o uno degli altri _update_ contenuti in quella dir.  
Senza prove non posso essere preciso, ma la strada dovrebbe essere  
questa.

Fammi sapere come va a finire

Paolo

Paolo A. wrote:

> Grazie per la dritta Danele, ma credo di essere in difficoltÃ con la  
> filosofia di AS e la strategia per le eventuali
> 
> Non riesco capire dove inserire l’observe\_field.
> 
> Mi spiego:  
> AS genera una tabella con tante righe quanti sono i records nel DB.  
> A fianco di ogni riga, inserisce il link a ‘Visualizza’, ‘Modifica’,  
> ‘Elimina’, cosÃ¬ come nella parte superiore, inserisce il link  
> ‘Crea’.  
> Quando si clicca, ad es., su ‘Modifica’, la riga viene espansa e vengono  
> visualizzati i campi specificati nel controller (active\_scaffold  
> :destinazioni do | config | … end).
> 
> In realtÃ dovrei vedere un solo campo sprotetto e modificabile (e fin  
> qui tutto Ã¨ possibile), ma poi, in base al valore inserito, dovrei  
> visualizzare e/o sproteggerne altri, in modo da poter essere a loro  
> volta modificati.
> 
> Questa tecnica Ã¨ banale con altri strumenti utilizzati in precedenza, ma  
> con AS e la sua filosofia, proprio non riesco a capire come fare.
> 
> SarÃ probabilmente banale, ma mi sono fermato su questo problema e non  
> riesco a venirne fuori.
> 
> Nessuno ha qualche idea da suggerire?
> 
> Paolo A.

---

<div class="post-metadata">

**Author:** ![pange\_99](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/3d9bf3/32.png) [@pange\_99](https://www.ruby-forum.com/u/pange_99)\
**Post date:** [June 6, 2008, 6:03pm UTC](https://www.ruby-forum.com/t/observe-form/138155/5 "2008-06-06T18:03:24Z")

</div>

… problema risolto.  
Ho buttato via Active Scaffold, ed ho gestito a manina i metodi  
‘Aggiungi’ e ‘Modifica’.

In questo modo, ho approfondito l’utilizzo di Ruby e la filosofia di  
Rails, risolvendo i problemi con la vecchia ma sempre valida scrittura  
del codice riga per riga, che permette di avere sotto controllo quello  
che si sta facendo, senza demandare ad alcuno o alcunchÃ¨ il risultato,  
dopo la solita attenta analisi.

Non mi considero certo un esperto con RoR, ma quel poco di esperienza  
fatta, la condividerÃ² certamente.

Grazie comunque a coloro che mi hanno dato suggerimenti.

PaoloA.
