Forum: Italian Ruby user group Semplice form_tag: giusto?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
230fd3c2ff37fecb157377fa191df749?d=identicon&s=25 Silvia Montuori (six)
on 2009-04-23 17:29
Salve a tutti! Sono ancora qui a chiedervi una mano, sempre se possibile
aiutare un caso disperato come me!

Il mio scopo è : data una domanda con relative risposte associate a dei
bottoni radio, dare la possibilità all'utente di scegliere una risposta
e tramite pulsante verificare se la risposta è giusta o meno (al momento
non implementata del tutto...)

Il codice della view in questione (in questo caso di un vero e falso con
valori di prova...)

<% form_tag (:action => "verify" , :id => @question.id) do %>
              <td><%= radio_button_tag :answer, 1, false %></td>
              <td><%= @question.send("r1") %>
              <% risposta = @question.send("r1") %></td></tr>
              <tr>
              <td><%= radio_button_tag :answer, 2, false  %> </td>
              <td><%= @question.send("r2") %>
              <% risposta = @question.send("r2") %></td>
              <%= submit_tag "Verifica" %>
<% end %>


Il mio problema è che cliccando su il bottone "Verifica" non succede
nulla...ovvero fa una ricarica della pagina e non carica la pagina
"verify".

Non sto qua a chiedervi se ho sbagliato qualcosa nel controller ...ma
solo se secondo voi, anche con le poche informazioni che vi ho dato,
quello che ho scritto qua sopra nella view ha del senso!
Vi ringrazio!
Eff93e9bbe063b7136c9b6f218071a09?d=identicon&s=25 Marco Mastrodonato (marcomd)
on 2009-04-23 18:24
Non puoi controllare nel controller che metodo esegue?
Mi sembra corretto ma se posso darti un consiglio, userei qualcosa tipo:

<% form_for(@question, :url => verify_question_path(@question) ) ) do
|f| %>
  <%= f.error_messages %>
  <%= f.check_box(:answer) %>
  <%= f.submit 'Verifica' %>
<% end %>

Non l'ho provato, è da verificare (le api online in questo momento hanno
il dominio ko) dovrai poi completarlo con le label e creare la route
6111b4012d1401ca83fdcea6b1d71237?d=identicon&s=25 Antonio Cangiano (Guest)
on 2009-04-23 18:28
(Received via mailing list)
2009/4/23 Marco Mastrodonato <m.mastrodonato@gmail.com>

> Non l'ho provato, è da verificare (le api online in questo momento hanno
> il dominio ko)


Suggerimento OT. Potete usare: http://apidock.com/rails

Ciao,
Antonio
--
http://antoniocangiano.com - Zen and the Art of Programming
http://math-blog.com - Mathematics is wonderful!
http://stacktrace.it - Aperiodico di resistenza informatica
Follow me on Twitter: http://twitter.com/acangiano
Author of "Ruby on Rails for Microsoft Developers":
http://bit.ly/rorforms
Eff93e9bbe063b7136c9b6f218071a09?d=identicon&s=25 Marco Mastrodonato (marcomd)
on 2009-04-23 18:41
Antonio Cangiano wrote:
>
> Suggerimento OT. Potete usare: http://apidock.com/rails
>

Fighissime queste api, grazie ;-)

La route:
map.resources :question, :member => { :verify=> :post }
230fd3c2ff37fecb157377fa191df749?d=identicon&s=25 Silvia Montuori (six)
on 2009-04-23 21:08
Grazie a tutti per le risposte!! Anche per le API on line visto che è
tutto oggi che tento di vedere le documentazioni e non ci riesco!
Proverò a breve (oggi no che dopo sei ore di elettronica sono un po'
fusa!) la procedura da Marco suggerita.
Il metodo "verify" dovrebbe (e dico dovrebbe) essere giusto : prende il
valore del button radio selezionato (value = params[:answer] ) e in base
a quello fa un ciclo if nel quale compara value restituendo alla view
una stringa.
Magari domani posto il codice...che è meglio.
Ma, con occhi da totale inesperta, mi sembra che il problema sia più
nella view che nel controller...
Grazie ancora di cuore!!
Eff93e9bbe063b7136c9b6f218071a09?d=identicon&s=25 Marco Mastrodonato (marcomd)
on 2009-04-24 09:25
Silvia Montuori wrote:
> Il metodo "verify" dovrebbe (e dico dovrebbe) essere giusto : prende il
> valore del button radio selezionato (value = params[:answer] ) e in base
> a quello fa un ciclo if nel quale compara value restituendo alla view
> una stringa.

Ciao, io ti consiglio comunque ti seguire (se puoi col debug) cosa
succede dopo il submit, non so che strumenti usi ma netbeans+fast
debugger+firefox+firebug sono strumenti essenziali e questo tipo di
problemi li risolvi autonomamente.
La view mi sembra corretta ma per esserne certi bisognerebbe controllare
l'output html, con firebug lo fai in un attimo.
Bd6fb06295c8ff8003af041210c91daa?d=identicon&s=25 Daneel Olivaw (daneel_olivaw)
on 2009-04-24 09:43
Silvia Montuori wrote:
> Salve a tutti! Sono ancora qui a chiedervi una mano, sempre se possibile
> aiutare un caso disperato come me!
>

Facciamo a gara a chi è più preso male?

> Il codice della view in questione (in questo caso di un vero e falso con
> valori di prova...)
>
> <% form_tag (:action => "verify" , :id => @question.id) do %>
>               <td><%= radio_button_tag :answer, 1, false %></td>
>               <td><%= @question.send("r1") %>
>               <% risposta = @question.send("r1") %></td></tr>
>               <tr>
>               <td><%= radio_button_tag :answer, 2, false  %> </td>
>               <td><%= @question.send("r2") %>
>               <% risposta = @question.send("r2") %></td>
>               <%= submit_tag "Verifica" %>
> <% end %>

Io ho una cosa del genere (l'operatore contatta il cliente e tra le
varie cose può segnare se il cliente ha bisogno di assistena o meno o se
passa in sede per chiedere cose più particolari; premendo il pulsante
viene salvato il valore selezionato e caricato il prossimo cliente)

<% form_tag :controller => '/agenda', :action => 'prossimo', :id =>
@contatti.id do %>
...

  <b>Richiesta assistenza:</b>
<%= radio_button( :contatti, :assistenza.to_s, value="0" )%> No
&nbsp;&nbsp;
<%= radio_button( :contatti, :assistenza.to_s, value="1" )%> Da chiamare
&nbsp;&nbsp;
<%= radio_button( :contatti, :assistenza, value="2" )%> Passa in sede
</p>
...
<%= submit_tag "Prossimo" %>
<% end %>


> Il mio problema è che cliccando su il bottone "Verifica" non succede
> nulla...ovvero fa una ricarica della pagina e non carica la pagina
> "verify".

Se metti dei "puts qualcosa", tanto per vedere se almeno entra in
"verify" e comincia a fare qualcosa?
230fd3c2ff37fecb157377fa191df749?d=identicon&s=25 Silvia Montuori (six)
on 2009-04-24 17:06
Marco Mastrodonato wrote:
> Silvia Montuori wrote:
>> Il metodo "verify" dovrebbe (e dico dovrebbe) essere giusto : prende il
>> valore del button radio selezionato (value = params[:answer] ) e in base
>> a quello fa un ciclo if nel quale compara value restituendo alla view
>> una stringa.
>
> Ciao, io ti consiglio comunque ti seguire (se puoi col debug) cosa
> succede dopo il submit, non so che strumenti usi ma netbeans+fast
> debugger+firefox+firebug sono strumenti essenziali e questo tipo di
> problemi li risolvi autonomamente.
> La view mi sembra corretta ma per esserne certi bisognerebbe controllare
> l'output html, con firebug lo fai in un attimo.

WOW! Mi hai aperto un mondo!! Scusatemi davvero ma sono veramente
autodidatta (a parte voi che mi date sempre una pronta mano) e non avevo
nemmeno considerato l'idea di firebug, ad esempio, e ammetto che mi
vergogno un po' di "studiare" informatica e avere così poca conoscenza!.
Adesso do un occhio ben approffondito a tutto il progetto...
Grazie ancora
230fd3c2ff37fecb157377fa191df749?d=identicon&s=25 Silvia Montuori (six)
on 2009-04-24 18:16
Marco Mastrodonato wrote:

> La route:
> map.resources :question, :member => { :verify=> :post }

Credo che :question vada sostituito con :questions...vero?
No, perchè con :question ho dei problemi (uninitialized constant
QuestionController) ma con :questions non da errori.
Però in ogni caso non funziona ancora adesso il tutto...sempre lo stesso
problema, ovvero cliccando il pulsante "verifica" mi si aggiorna la
pagina.
E questo è l'url completo:
http://localhost:3000/questions/3?commit=Verifica&....
Eff93e9bbe063b7136c9b6f218071a09?d=identicon&s=25 Marco Mastrodonato (marcomd)
on 2009-04-27 09:18
Silvia Montuori wrote:
> Però in ogni caso non funziona ancora adesso il tutto...sempre lo stesso
> problema, ovvero cliccando il pulsante "verifica" mi si aggiorna la
> pagina.

Ciao, dovresti controllare l'url del form, quel link non mi sembra
corretto, dovrebbe richiamare qualcosa tipo:
http://localhost:3000/questions/3/verify?ecc.

ti avevo messo un esempio di form sopra

fai anche un rake :routes e verifica la presenza di verify insieme gli
altri metodi di question
This topic is locked and can not be replied to.