Domanda

Stavo solo giocando intorno con Rails 3 beta e ho notato che link_to_function è ormai andato. Presumo che c'è un metodo alternativo per ottenere lo stesso risultato (evento onclick?), Ma mi chiedevo se c'è un modo più Rails-3'y di farlo. TIA.

È stato utile?

Soluzione

Rails 3 sembra aver fatto fuori con Prototype Helper a favore di una libreria JS approccio meno invadente / agnostico. L'obiettivo è quello di eliminare tutti i JavaScript inline generato da Rails. Prototipo Helper generato praticamente tutto il javascript.

Ora, qualsiasi delle varianti non a distanza di aiutanti genererà il javascript corretta per una chiamata remota nella libreria JS di scelta semplicemente fornendo il:. => True l'opzione remote

Purtroppo questo non vale per la x di funzionare metodi. Per il momento non ci sono le prototipo aiutanti legacy che non sono più una parte fondamentale di Rails.

Si potrebbe anche usare chiamata come definito nella ActionView :: Helpers :: :: PrototypeHelper JavascriptGenerator :: GeneratorMethods per la fornitura di codice javascript per: onclick come html_option per link_to, ma non è esattamente abbastanza

.

Esempi:

Rails < 3                      | Rails 3
link_to_remote "target", url   | link_to "target", url, :remote => true
form_remote_for @post          | form_for @post, :remote => true

etc ....

O qualcosa in tal senso. Sto avendo difficoltà a trovare la documentazione ufficiale per eseguire il backup le mie affermazioni. Così il note avrà a che fare, per ora.

Prima di poter utilizzare, è necessario includere i file di origine il corretto js. Assicurarsi che si sta caricando prototype.js e rails.js, o la biblioteca e autista per JS quadro di scelta al loro posto.

Ricordate, Rails 3 è in beta ora. Ma questo non significa che il gioco è fatto. Onestamente non ho idea di come sarà sostituito link_to_function. Va contro l'ideale di javascript discreto.

Altri suggerimenti

Per rispondere alla mia domanda, sembra che questo funziona ed è sufficiente per quello che mi serve:

link_to "name", nil, :onlick => "alert('Hello, world!')"

link_to_remote può essere fatto in questo modo

  

link_to "target",: a distanza => true

e di fare un post ajax / farti avere

  

link_to "target", {: Controller =>   controller: action => metodo,}: distanza => true

In rotaie 2 è stato come questo

  

link_to_remote "target",: url =>   {: Controller => Controller,: action =>   metodo,}: remoto   => True

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top