La gemma will_paginate è danneggiata nella mia versione di Oracle. Il metodo predefinito paginate_by_sql
nel modulo WillPaginate sta inserendo un 'AS' in una query e causando un errore.Sovrascrittura di un metodo di modulo da una gemma in Rails
Il codice stesso è facilmente risolvibile, ma non sono sicuro del modo migliore per far sì che Rails raccolga la mia modifica.
Non voglio cambiare il codice nella gemma stessa, in quanto ciò lascerebbe il mio codice rotto su altre macchine.
Ho cercato di creare un file lib/test.rb contenente:
module WillPaginate
def paginate_by_sql
(my code goes here)
end
end
e che richiedono da environment.rb, ma non è raccogliendo i miei cambiamenti. Ho anche provato a richiederlo dai controller/application.rb, ma ancora una volta, non raccogliendo le mie modifiche.
Temporaneamente, ho avuto modo di funzionare sovrascrivendo il metodo all'interno del modello specifico stesso, ma questo è un po 'un hack, e significa che non posso usarlo su nessuno degli altri modelli in questo progetto.
Sono sicuro che c'è un modo semplice per farlo, ma non ho alcuna fortuna nel rintracciarlo usando Google.
Se il codice della gemma è rotto, sicuramente è rotto ovunque? Hai registrato un bug nel progetto? http://wiki.github.com/mislav/will_paginate/report-bugs –
Non ancora: il bug è in un blocco che gestisce casi specifici di oracle. La causa è perché sto usando l'adattatore oracleenhanced (piuttosto che oracle o oci). Penso che la maggior parte dei ppl stiano usando l'adattatore oracle e non ci stiano addentrando in questo) In breve ci sarà un bug di registrazione. –