Observe_form

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

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)
pare che il problema stia nel parametro :on : dovrebbe essere ‘changed’
invece di :change

Prova, magari il problema e` facilmente risolto

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.

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.

… 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.