Rails3 link_to: con l'attributo?
-
22-09-2019 - |
Domanda
Mi chiedo se il: con l'attributo viene rimosso dal Rails3 poiché non riesco a trovare nulla nel api Rails3 - http : //rails3api.s3.amazonaws.com
qualcuno ha un indizio o dare un suggerimento su come utilizzare il: parametro per inviare i dati con un link_to
non funzionante esempio:
= link_to "Foo", {:action => "filter", :filter => "filter1",:with => "'test='+$('search').value"}, :remote => true, :class => "trash unselected", :id => "boo"
grazie!
Soluzione
Questo va contro il punto di non-obstrusive javascript ed è per questo che è stato rimosso. Provate a guardare il Railscast su questo argomento qui: http://railscasts.com/episodes/205- discreto-javascript
Si dovrebbe cercare un altro modo di fare questo.
Altri suggerimenti
ero alle prese con questo oggi e dopo un po 'mi si avvicinò con piccolo hack in rails.js. Nel metodo handleRemote Ho cambiato questo:
} else {
method = element.attr('data-method');
url = element.attr('href');
data = null;
}
a questo:
} else {
method = element.attr('data-method');
url = element.attr('href');
data = eval(element.attr('data-with'));
}
Grazie di a che ora posso usare link_to: a distanza in questo modo:
<%= link_to "link", some_path, :remote => true, 'data-with' => "'address=' + $j('#office_address').val();" %>
Nota: questo è valido solo se si sta utilizzando jQuery, ma non dovrebbe essere difficile applicare questo per il prototipo
C'è però un modo di lavorare intorno ad esso.
Utilizzare questa nella vista come una linea guida:
link_to "Foo", {:action => "filter", :filter => "filter1"}, {:remote => true, :class => "trash unselected", :id => "boo", 'data-with' => "'&test='+$('search').value"}
(spostato: con la seconda parte e reso 'dati con')
e aggiungere questo alla parte inferiore:
<script type="text/javascript" charset="utf-8">
$$('a[data-remote=true]').each(function(a){
a.onclick = function(){a.setAttribute('href', a.getAttribute('href') + eval(a.getAttribute('data-with')))};
});
</script>
, naturalmente, è necessario disporre di prototipo caricata (è nelle javascript di default di un app rotaie)
Per qualcosa di un meglio di questo one-liner: http://gist.github.com/451508
Utilizzando il succo del discorso non è necessario per iniziare:? Con con il & o