Sono perplesso con questo problema.Come gestite il conflitto tra ActiveSupport :: JSON e la gemma JSON?
ActiveSupport::JSON
definisce to_json
su vari oggetti core e così fa la gemma JSON. Tuttavia, l'implementazione non è la stessa: la versione di ActiveSupport accetta argomenti e la versione gemma JSON no.
Ho installato una gemma che richiedeva la gemma JSON e la mia app si è rotta. Il problema è che sto usando to_json
in un controller che restituisce un elenco di oggetti, ma voglio controllare quali attributi vengono restituiti.
Quando il codice ovunque nel mio sistema fa require 'json'
ottengo questo messaggio di errore:
TypeError: wrong argument type Hash (expected Data)
ho provato un paio di cose che ho letto on-line per risolvere il problema, ma niente ha funzionato. Ho finito per riscrivere la gemma per utilizzare ActiveSupport::JSON.decode
anziché JSON.parse
.
Questo funziona ma non è sostenibile ... Non posso incastonare gemme ogni volta che voglio usare una gemma che richiede la gemma JSON.
Aggiornamento: La migliore soluzione di questo problema è l'aggiornamento a Rails 2.3 o versioni successive, che lo ha risolto.
Perché questa domanda contrassegnati come "comunità wiki"? –
Non lo so, ho appena pensato di provarlo e vedere cosa fa. –
Ho sentito il tuo dolore, spero che questo pasticcio venga risolto un giorno – MatthewFord