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.