Ich habe ein nicht-Rails-Projekt, in dem ich einige Einstellungen aus einer YAML-Datei bin Laden:Hash mit indifferent Zugang
config = YAML::load(File.open("#{LOG_ROOT}/config/database.yml"))
ich nur diesen Hash wie config["host"]
zugreifen kann, config["username"]
usw.
I will gleichgültigen Zugang, so kann ich sowohl :host
und "host"
verwenden.
Der Grund ist, einer der Edelsteine in dem Projekt, an dem ich diesen Hash übergebe, scheint mit Symbolen darauf zuzugreifen und es scheitert derzeit.
Was ist der beste Weg, um einen Hash mit gleichgültigem Zugriff in diesem Szenario zu erstellen?
Selbst wenn Sie nicht Schienen verwenden gibt es keinen Grund, warum Sie konnte einfach nicht 'require‚active_support/core_ext/hash/indifferent_access'', und es ist Ihre Lösung? – Casper
Ich habe active_support gem nicht installiert und fragte mich, ob ich es installieren sollte, nur um diese Funktion zu bekommen. – Josnidhin
Wenn Sie nicht möchten, kopieren Sie den Code in Ihren eigenen Hash mit einer indifferenten Zugriffsklasse. Ich habe die Lösung von Rails nicht angeschaut, aber ich habe selbst schon eine geschrieben, kann nicht mehr als 50 LOC sein. –