2015-08-21 22 views
7

Sto usando il Ruby on Rails 5 e utilizzare turbo-collegamento come indicato di seguito:Ruby on Rails 5 - TurboLink 3 non ha funzionato correttamente

<%= javascript_include_tag 'custom-plugins', 'data-turbolinks-track' => true %> 

Si sta lavorando bene con Ruby On Rails 4, ma hanno problema con Ruby on Rails versione 5. Una volta cliccato, il js/css non viene caricato correttamente.

Qualsiasi aiuto sarà apprezzato.

+1

cosa esattamente non stai caricando per dire? –

+0

apro il mio sito www.example.com -> tutto bene apro un'altra pagina -> www.example.com/xyz, quindi fai clic sul pulsante Indietro, ora la pagina non viene visualizzata correttamente. –

+0

Vuoi dire che il rendering della pagina non funziona? o le funzioni JS non si stanno caricando? –

risposta

2

Come arbitrato per Rails 5 Awesome features

Turbolinks ha fatto parte di Rails a partire dalla versione 4, probabilmente una delle caratteristiche che le persone lo odiano o amore; non c'è una via di mezzo qui.

Con Rails 5 riceveremo una nuova versione che, con l'aiuto degli attributi di dati personalizzati HTML5, ci aspettiamo una migliore velocità e rendering nelle nostre applicazioni Rails.

Il cambiamento più significativo in questa nuova versione è la funzione di sostituzione parziale. Dal lato del cliente, saremo in grado di comunicare a Turbolinks quali contenuti abbiamo bisogno di cambiare/sostituire e cosa no.

I turbolinks cercano gli attributi personalizzati HTML5 e decidono la strategia di sostituzione nel nostro.

Per attivare una sostituzione sul lato client, è possibile utilizzare o aggiornare la nostra. La differenza tra ed è che il primo emetterà un server per ottenere l'HTML che deve essere usato per sostituire il nostro mentre ci aspetta l'HTML che dovrebbe essere usato per il suo funzionamento.

Con entrambe le funzioni, possiamo passare un hash con una o una serie di elementi HTML in o.

Action Result 
Turbolinks.visit(url, { change: ['entries'] }) Will replace any element with custom attribute and any element with its id listed in change. 
Turbolinks.visit(url) Will keep only elements with custom attribute and replace everything. 
Turbolinks.visit(url, { keep: ['flash'] }) Will keep only elements with custom attribute and any element with its id listed in keep, everything else will be replaced. 
Turbolinks.visit(url, { flush: true }) Will replace everything 

Siamo in grado di innescare la stessa funzionalità dal lato server con e, entrambi in grado di ricevere e come opzioni, ma può anche ricevere con o per forzare un reindirizzamento con o senza Turbolinks.

Se ti piace Turbolinks o meno, questo potrebbe essere un buon momento per provare e scoprire se potrebbe essere una buona misura da qualche parte nella vostra applicazione.

+0

grazie sumit :) –

1

È un evento comune per i turbolink con js. Turbolinks aiuta a caricare una pagina particolare molto più velocemente. Ma ciò che fa è anche interrompere il funzionamento del js a volte. Così, mentre il caricamento di questo particolare utilizzo pagina questa linea

<%= link_to "example_page", example_page_path, :"data-no-turbolink" => true %> 

o scrivere questo nel layout

<body <%= "data-no-turbolinks='true'".html_safe if controller_name=="example_controller" && action_name=="example_page" %>> 

per fermare TurboLink di lavorare in questa particolare pagina.