Forum: Italian Ruby user group Passare una variabile da js ad un blocco ERB: E' possibile?

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.
74ba9c207c0b60aa996fbc7db1c28cf9?d=identicon&s=25 Carmine Moleti (carminem)
on 2009-03-13 07:57
Salve a tutti,

In risposta ad una chiamata AJAX ho una view "js.erb" che ha un codice
simile:

$('#order_update_quantity').html("<%= escape_javascript(render(:partial
=> 'shared/update_order_quantity', :locals => { :order => @order, :row
=> @order.order_rows.find( row_id ) })) %>");

dove "row_id" è una variabile assegnata da js.

Ovviamente, il tutto non funziona. Quello che mi chiedo è se sia
possibile passare al volo il valore di una
variabil ad un blocco ERB.

Grazie per il Vs aiuto.
8768bcdbda1adf80e4da6744268868af?d=identicon&s=25 Pietro Giorgianni (giorgian)
on 2009-03-13 08:30
(Received via mailing list)
2009/3/13 Carmine Moleti <carmine.moleti@email.it>:
>
> Ovviamente, il tutto non funziona. Quello che mi chiedo è se sia
> possibile passare al volo il valore di una
> variabil ad un blocco ERB.

temo proprio di no: l'erb (ma vale anche per rjs) viene interpretato
dal server, e solo alla fine il javascript viene eseguito dal client.

ma stiamo parlando di una chiamata ajax: perché non passi quella
variabile come parametro?

pietro
74ba9c207c0b60aa996fbc7db1c28cf9?d=identicon&s=25 Carmine Moleti (carminem)
on 2009-03-13 10:05
Pietro Giorgianni wrote:
> temo proprio di no: l'erb (ma vale anche per rjs) viene interpretato
> dal server, e solo alla fine il javascript viene eseguito dal client.

già, chissà perchè mi ostinavo a rigettare la realtà :)

> ma stiamo parlando di una chiamata ajax: perch� non passi quella
> variabile come parametro?

Il fatto è che sto utilizzando un plugin jQuery per l'inplace editing
che non mi consente di
passare quella variabile come parametro aggiuntivo.
Inoltre, ho una route che prevede due parametri:

- L'id dell'ordine
- L'id della riga relativa all'ordine

Mi secca dover modificare la route (e di conseguenza l'action), ma se è
l'unica alternativa...

Intanto, grazie 1000 per il supporto
8768bcdbda1adf80e4da6744268868af?d=identicon&s=25 Pietro Giorgianni (giorgian)
on 2009-03-13 10:28
(Received via mailing list)
Il 13 marzo 2009 10.05, Carmine Moleti <carmine.moleti@email.it> ha
scritto:
> che non mi consente di
> passare quella variabile come parametro aggiuntivo.

non so quale sia questo plugin, quindi parlo alla cieca, ma forse la
cosa più semplice è crearti un tuo helper copiando e modificando
quello che usi ora.

> Inoltre, ho una route che prevede due parametri:
>
> - L'id dell'ordine
> - L'id della riga relativa all'ordine
>
> Mi secca dover modificare la route (e di conseguenza l'action), ma se è
> l'unica alternativa...

scusami, perché devi modificare la route? in una richiesta post (sia
ajax che non) puoi passare tutti i parametri che vuoi a prescindere
dalla route...

se la variabile js (row_id?) va usata nell'url della richiesta ajax,
costruisci l'url via javascript, tipo '/prova/' + row_id.

io ho avuto di questi problemi fintanto che mi ostinavo a usare sempre
e solo gli helper rails, tipo link_to_remote; ora, quasi sempre,
faccio la richiesta ajax direttamente da js, almeno quando non so in
partenza (lato server) tutto quello che devo sapere per costruire la
richiesta...

pietro
74ba9c207c0b60aa996fbc7db1c28cf9?d=identicon&s=25 Carmine Moleti (carminem)
on 2009-03-13 11:57
Pietro Giorgianni wrote:

>> Mi secca dover modificare la route (e di conseguenza l'action), ma se è
>> l'unica alternativa...
>
> scusami, perché devi modificare la route? in una richiesta post (sia
> ajax che non) puoi passare tutti i parametri che vuoi a prescindere
> dalla route...

E' vero ho detto una cazzata...

> se la variabile js (row_id?) va usata nell'url della richiesta ajax,
> costruisci l'url via javascript, tipo '/prova/' + row_id.

...perchè partivo dal fatto di non voler rinunciare alla chiamate tipo:

xxxx_path(...)


> io ho avuto di questi problemi fintanto che mi ostinavo a usare sempre
> e solo gli helper rails, tipo link_to_remote; ora, quasi sempre,
> faccio la richiesta ajax direttamente da js, almeno quando non so in
> partenza (lato server) tutto quello che devo sapere per costruire la
> richiesta...

Infatti, con questo approccio il problema non si presenta proprio.
Anche io ho eliminato tutte le varie "link_to_remote" sostituendole con
le richieste fatte
direttamente dal lato js.

Bene, intanto, ho risolto.

Grazie ancora!
This topic is locked and can not be replied to.