2013-09-11 13 views
6

Ho una gemma ruby ​​e voglio usare il metodo Hash.from_xml nella gemma che è inclusa nel modulo active_support di rails. Ho il codice qui sotto nel mio gemspec:cercando di richiedere active_support nella gemma

gem.add_dependency 'active_support', '~> 3.0.0' 

Tuttavia, quando ho costruire e installare la gemma a livello locale, irb eseguire, richiedono la gemma, non sto vedendo i metodi di sostegno attivo incluso?

Qualche suggerimento su cosa sto facendo male o come eseguire il debug? Grazie!

+0

Provare ad usarlo con 'require 'active_support/all''. O se vuoi usare solo hash methonds usa 'require' active_support/core_ext/hash''. –

+0

ERRORE: durante l'esecuzione di gem ... (Gem :: DependencyError) Impossibile risolvere le dipendenze: sports_data_api richiede active_support/all (~> 3.0.0), active_support/all (~> 3.0.0) – BC00

risposta

8

È necessario require i metodi necessari da ActiveSupport; non sono aggiunti per impostazione predefinita.

Come Yevgeniy menziona in un commento, il modo per farlo è require "active_support/all" se hai bisogno di tutto - o se per esempio vuoi solo le estensioni Hash usare require 'active_support/core_ext/hash'. Nota che questo di solito non va nella gemspec, ma piuttosto in qualunque file usi dalla tua gemma per configurarsi.

Forse ancora meglio sarebbe a require i file di supporto attivo richiesti nei file effettivi che necessitano di essi, ma è una questione di gusti.

+0

ok che funziona grazie . Perché non funziona quando lo metto nella gemspec come sopra? cosa sta succedendo in modo diverso quando lo richiedo nel file rispetto al gemspec? Grazie per l'aiuto! – BC00

+0

I tuoi gemspec fanno riferimento a gemme. La gemma si chiama "active_support". 'Richiede' file di riferimento, potenzialmente da gemme. Potresti essere in grado di fare 'gem" active_support ",: require =>" active_support/all "', comunque. –

Problemi correlati